irb(main):001* def greeting
irb(main):002* puts 'おはよう'
irb(main):003* puts 'こんばんは'
irb(main):004> end
=> :greeting
irb(main):005> greeting
おはよう
こんばんは
=> nil
irb(main):007* greeting do
irb(main):008* puts 'こんにちは'
irb(main):009> end
おはよう
こんばんは
=> nil
渡されたブロックを実行するためにはメソッド内でyieldを使います。
irb(main):001* def greeting
irb(main):002* puts 'おはよう'
irb(main):003* yield
irb(main):004* puts 'こんばんは'
irb(main):005> end
=> :greeting
irb(main):006* greeting do
irb(main):007* puts "こんにちは"
irb(main):008> end
おはよう
こんにちは
こんばんは
=> nil
ブロックで呼び出した側の処理をyieldで実行させる
irb(main):001* def greeting
irb(main):002* puts 'おはよう'
irb(main):003* yield
irb(main):004* yield
irb(main):005* puts 'こんばんは'
irb(main):006> end
=> :greeting
irb(main):007* greeting do
irb(main):008* puts "こんにちは"
irb(main):009> end
おはよう
こんにちは
こんにちは
こんばんは
=> nil
yieldの隣に渡すことでブロックの引数になる
irb(main):001* def greeting
irb(main):002* puts 'おはよう'
irb(main):003* text = yield 'こんにちは'
irb(main):004* puts text
irb(main):005* puts 'こんばんは'
irb(main):006> end
=> :greeting
irb(main):007* greeting do |text|
irb(main):008* text * 2
irb(main):009> end
おはよう
こんにちはこんにちは
こんばんは
=> nil
irb(main):001* def greeting
irb(main):002* puts 'おはよう'
irb(main):003* text = yield 'こんにちは', 12345
irb(main):004* puts text
irb(main):005* puts 'こんばんは'
irb(main):006> end
=> :greeting
irb(main):007* greeting do |text, other|
irb(main):008* text * 2 + other.inspect
irb(main):009> end
おはよう
こんにちはこんにちは12345
こんばんは
=> nil
inspect -> String[permalink][rdoc][edit]
オブジェクトを人間が読める形式に変換した文字列を返します。