|
ブロックでコードを書くときにパイプ内のローカル変数の作成を理解しようとしていました。また、IRB
以下のコードでも同じことを試しました。
[1,2,3].each {|x;y| y=x; print y}
#123=> [1, 2, 3]
[1,2,3].each {|x;y = 0| y=x; print y}
#SyntaxError: (irb):1: syntax error, unexpected '=', expecting '|'
#[1,2,3].each {|x;y = 0| y=x; print y}
^
#(irb):1: syntax error, unexpected '}', expecting $end
# from C:/Ruby193/bin/irb:12:in `<main>'
しかし、最初のコードは完璧ですが、2番目のコードで何が起こったのか理解できませんでした。
の違いを教えてください|x,y| and |x;y=0|
。この質問に対する答えが私にとって意味があることを願っています。
再び以下は完全に機能します:
a = "hello world".split(//).each{ |x,newstr = Array.new() | newstr = x.capitalize;puts newstr }
#H
#E
#L
#L
#O
#
#W
#O
#R
#L
#D
#=> ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]