ruby
1class Menu 2 include Enumerable 3 4 def each 5 yield "pizza" 6 yield "spaghetti" 7 yield "salad" 8 yield "water" 9 yield "bread" 10 end 11end 12 13menu_option = Menu.new 14 15menu_option.each do |item| 16 puts "would you like : #{item}" 17end 18 19p menu_option.find{|item| item == "pizza"} 20 21p menu_option.select{|item| item.size <= 5} 22 23p menu_option.reject{|item| item.size <= 5} 24 25p menu_option.first 26 27p menu_option.take(2) 28 29p menu_option.drop(2) 30 31p menu_option.min 32 33p menu_option.max 34 35p menu_option.sort 36 37menu_option.reverse_each {|item| puts item}
eachを自作しているコードです。理解できない部分があるので、教えてください。
menu_option.eachの構文は自作したeachが呼び出されyieldは引数として渡されたブロックに置き換わり、処理されていることがわかります。しかし、なぜfindやselectにもMenuクラスで定義したeachの"pizaa"などが引数として渡されているのですか?
どれも自作したeachを通したような動きをします。
どなたかわかる方教えてください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/18 12:00