From: shevegen@... Date: 2019-07-04T07:45:40+00:00 Subject: [ruby-core:93533] [Ruby master Feature#15983] Can we have a similar syntax (string interpolation) the way V language has? Issue #15983 has been updated by shevegen (Robert A. Heiler). Let's look at this purely from a syntax point of view, so that we can avoid other issues such as backwards incompatible changes (which may be a big reason why this request will not be implemented; but you have to ask matz). I think you have made a good point that e. g. $foo = 'world' puts "hello $foo" would be simpler to type than e. g. puts "hello #{$foo}" or foo = 'world' puts "hello #{foo}" Martin pointed out that Perl allows for string interpolation like that, although it still seems different to this behaviour: areas := ['game', 'web', 'tools'] for area in areas { println('Hello, $area developers!') Since we do not need special access modifiers for the variable "areas", whereas I seem to remember in perl we had to use some identifier such as $areas or something like that; or @areas or something (it has been literally like almost +15 years since I last wrote perl code ...). Having said that, I think that it is probably not easily doable to interpolate without #{} for non-global variables, as otherwise it might have been done yet. Adding another syntax identifier as proposed, would, in my opinion, not be a good idea, since the scope of the change is motivated primarily by the possibility to avoid #{} only. #{} can be annoying, but having to add a new character solely for this would be bad as well, I think. Then there is also the issue of backwards compatibility, so I think while it is an interesting idea, it is most likely not a very realistic one. But that is just my opinion - ultimately you have to ask matz. :) ---------------------------------------- Feature #15983: Can we have a similar syntax (string interpolation) the way V language has? https://bugs.ruby-lang.org/issues/15983#change-79096 * Author: mechanicles (Santosh Wadghule) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Sorry, guys, This is the first feature that I am writing in this Ruby issue tracking system, and If I make any mistake, please understand :). Today I was going through this language, i.e. V language (mainly their website) and found its basic code like below, ```ruby fn main() { areas := ['game', 'web', 'tools', 'science', 'systems', 'embedded', 'GUI', 'mobile'] for area in areas { println('Hello, $area developers!') } } ``` I like this kind of string interpolation which looks so simple to write. If we try to write the same code in Ruby, we need to write like this, ```ruby areas = ['game', 'web', 'science', 'system'] areas.each do |area| puts "Hello, #{area} developers!" end ``` Instead of using `#{area}` syntax for string interpolation, can we have something like `$area`? This might save some keystrokes. I know that Ruby has already occupied this `$` character. But we can use another character which is not used in Ruby. We can close this feature request if we already discussed on such topic before. -- https://bugs.ruby-lang.org/ Unsubscribe: