Ruby 初心者スレッド Part 67at TECHRuby 初心者スレッド Part 67 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト550:デフォルトの名無しさん 22/10/05 21:34:32.70 2RK+LAqWr.net perlの省略記法好きなんだけどプロジェクトだと使いづらいんだよな…… 551:デフォルトの名無しさん 22/10/10 21:33:09.97 mVWGK/1kp.net 教えてください。 redditのr/rubyを読んでいて、以下のようなサンプルコードを書く人がいました。 lambda do p 1 p 2 p 3 end[] lambda { p 1 p 2 p 3 }[] -> { p 1 p 2 p 3 }[] このサンプルを書いた人は、Procとか、lambdaを使った書き方の違いを説明したかったようなので 議論の本質から外れるのですが、 Endや}の後の[]は、どんな意味があるかお分かりになりますでしょうか。 552:デフォルトの名無しさん 22/10/10 21:54:11.50 vcZFFA/Ea.net https://docs.ruby-lang.org/ja/latest/method/Proc/i/=3d=3d=3d.html lambdaメソッドで生成したProcオブジェクトの実行です 553:デフォルトの名無しさん (オッペケ Sr03-mdlF) [ここ壊れてます] .net callしてるんでしょ 554:デフォルトの名無しさん 22/10/11 14:17:27.31 17+/w9Hg0.net 手続きオブジェクト・Proc は、 Proc.new, Kernel#proc, Kernel#lambda, -> 引数{ 処理 } で作れます。 Procを呼び出すには、Prco#call, Proc#[] を使う g = -> x, y { x + y } p g.call( 3, 4 ) p g.( 3, 4 ) p g[ 3, 4 ] p -> x, y { x + y }[ 3, 4 ] これらは全て、7 と出力される 最後のものは、JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいなものか? 定義されると同時に実行される 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch