RubyコードブロックBlocksの使い方の紹介
1768 ワード
Rubyのコードブロックは、Rubyの特色の一つです.通常do...end中間またはカッコ{}中間.コードブロックは、暗黙的または表示されるパラメータ伝達関数として使用することができ、場合によっては便利である.ここではRubyのコードブロックの4つの簡単な使い方について紹介します.
1.基本的な使い方
任意の関数は呼び出し時にコードブロックを暗黙変数として伝達することができ,メソッドの内部でyieldキーワードでコードブロックを実行する.くりを一つあげる
実行結果は次のコードと等価です
2.コードブロックが入力されたかどうかを確認する
メソッドでblock given?コードブロックが入力されたかどうかを判断します.
結果は
3.パラメータを含むコードブロックの呼び出し
実行結果は
4.コードブロックが明示的なパラメータとして入力される
以上の3つの例では,関数内部の呼び出しコードブロックはyieldを用い,表示せずにコードブロックを用いた.コードブロックは表示パラメータとして入力され、block variableとして関数で呼び出されます.
実行結果は
上記のコードでは、パラメータを含むコードブロックを最後のパラメータとして関数に伝達するblockを用いる.コールはコードブロックを実行するarityは、コードブロックのパラメータ数を返します.
以上がRubyのコードブロックの簡単な入門です.ところで、ルビーは不思議な言葉ですね.
オリジナルは、転載しないでください.
1.基本的な使い方
任意の関数は呼び出し時にコードブロックを暗黙変数として伝達することができ,メソッドの内部でyieldキーワードでコードブロックを実行する.くりを一つあげる
def hello
yield #
end
hello {puts 'Hello, jianshu.com'} # hello
実行結果は次のコードと等価です
def hello #
puts 'Hello, jianshu.com'
end
hello
2.コードブロックが入力されたかどうかを確認する
メソッドでblock given?コードブロックが入力されたかどうかを判断します.
def hello
unless block_given?
puts 'We don\'t know what to say...'
else
yield
end
end
hello #
hello {puts 'Welcome to my blog.'} #
結果は
> We don't know what to say...
> Welcome to my blog
3.パラメータを含むコードブロックの呼び出し
def hello
yield('Peach','jianshu.com')
end
hello {|name, address| puts name+', welcome to '+address}
実行結果は
> Peach, welcome to jianshu.com
4.コードブロックが明示的なパラメータとして入力される
以上の3つの例では,関数内部の呼び出しコードブロックはyieldを用い,表示せずにコードブロックを用いた.コードブロックは表示パラメータとして入力され、block variableとして関数で呼び出されます.
def hello(name,address,&block)
block.call name,address
puts "Block has #{block.arity} parameters"
end
hello('Peach','Jianshu.com') {|name, address| puts name+', welcome to '+address}
実行結果は
> Peach, welcome to Jianshu.com
> Block has 2 parameters
上記のコードでは、パラメータを含むコードブロックを最後のパラメータとして関数に伝達するblockを用いる.コールはコードブロックを実行するarityは、コードブロックのパラメータ数を返します.
以上がRubyのコードブロックの簡単な入門です.ところで、ルビーは不思議な言葉ですね.
オリジナルは、転載しないでください.