どうやら、Rubyはシンボル付きのインスタンス変数の値を返すコードブロックを作成できます。検討:
class Person
attr_accessor :fn
end
def give(n,&b)
i=0
while(i<n)
aa = Person.new
aa.fn = "name #{i}"
i=i+1
puts b.call(aa)
end
end
今、両方give(5, &:fn)
とgive(5) {|x| x.fn}
与える
name 0
name 1
name 2
name 3
name 4
=> nil
しかし、&:fn
実際にはどういう意味ですか?アンパサンドがProcを次のようなブロックに変換できることを知っています
bb = Proc.new {|x| x.fn}
give(5, &bb)
では、記号:fn
はどういう意味ですか?このような使用法のドキュメントはどこで確認できますか?シンボルを使用して、sayやなどのインスタンス変数にアクセスできますperson:new
かperson[:new]
?