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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>