読者です 読者をやめる 読者になる 読者になる

rubyで文字列内の式展開で#{@hoge}の{}は省略できる

Ruby

ruby style guideというのが話題になっていて,
参考になるところもあり,否定したくなるところもあり
で楽しく読んでいたら知らない文法に出くわしてビビったので.
https://github.com/bbatsov/ruby-style-guide

class Person
  attr_reader :first_name, :last_name

  def initialize(first_name, last_name)
    @first_name = first_name
    @last_name = last_name
  end

  # bad
  def to_s
    "#{@first_name} #{@last_name}"
  end

  # good
  def to_s
    "#@first_name #@last_name"
  end
end

( ゚д゚)

こんなんあったんかい

ためしてみた

# できるし!
pry(main)> @a = 1
=> 1
pry(main)> puts "#@a"
1

# 変数名に使われない記号
# が出てくると区切られるぽい
pry(main)> puts "#@a hello"
1 hello
pry(main)> puts "#@a$hello"
1$hello
pry(main)> puts "#@a-hello"
1-hello

# インスタンス変数以外もいけるか

# グローバル変数 => ok
pry(main)> $a = 1
=> 1
pry(main)> puts "#$a hello"
1 hello

# クラス変数 => ok
pry(main)> @@a = 1
=> 1
pry(main)> puts "#@@a hello"
1 hello

# 普通の変数 => ng
pry(main)> a = 1
=> 1
pry(main)> puts "#a hello"
#a hello

# 記号っぽい文字からはじめれば…
# => やっぱだめか
pry(main)> _a = 1
=> 1
pry(main)> puts "#_a hello"
#_a hello

覚えとこう