であなたは簡単に何が起こっているのを見ることができます。この1
alfawit = ("a".."z")
puts "That's an alphabet: \n\n"
alfawit.each { |litera| puts litera }
または
puts "That's an alphabet: \n\n"
("a".."z").each { |litera| puts litera }
をお試しください変数:
alfawit = ("a".."z")
foo = alfawit.each { |litera| puts litera }
puts "That's an alphabet: \n\n #{ foo } "
2行目で問題が発生しています。each
は、範囲の各要素に対してブロックを呼び出してから受信者を返します。foo
はalfawit
になります。ここで
は、所望の結果を得るために別の方法です:
alfawit = "a".."z"
puts "That's an alphabet:", alfawit.to_a
puts
は、新しい行に各引数を出力しますが、配列引数のために、それは新しいライン上の各要素を出力します。結果:
That's an alphabet:
a
b
c
⋮
x
y
z
同様に、あなたは*
経由argument listに範囲を変えることができます:
alfawit = "a".."z"
puts "That's an alphabet:", *alfawit
と同等です:
puts "That's an alphabet:", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
あなたの期待される結果は何ですか? – Stefan
Ursusによって正しく行われているように、 "That's an alphabet"の後のアルファベットをリストします。私は反復を、私がやったように入れ子にすることができると思っていました。 – Michalko