其他方法的參數傳遞方法,我感興趣的如何通過方法與紅寶石參數。我需要通過靈活的功能設置來實現類似命令模式的功能。示例=> C#中的lambda函數。與紅寶石
與紅寶石
回答
紅寶石lambda
功能定義如下:
a.lambda{ puts "Hello"}
a.call #=> Hello
a = lambda{|str| puts str }
a.call("Hello world !!!") #=> Hello world !!!
a = lambda{|*args| puts args.join(' ')}
a.call("Hello", "World") #=> Hello World
可以動態調用它們的參數列表以及方法。以下只是其中一種方式:
class Foo
def foo(what)
puts what
end
end
Foo.new.send(:what, "something") # ==> "something"
而@ coedit的迴應是另一種方式.. :) – 2013-02-27 18:07:18
好的,這是有趣的一點。但我怎樣才能將代碼傳遞給另一個方法並從那裏調用它?你能否提供一些簡單的例子。 – Ph0en1x 2013-02-27 20:32:56
您可以按照您在Ruby中執行大多數操作的方式執行命令模式:使用塊。
class Soldier
def initialize(&block)
@command = block
end
def action
@command.call if @command
end
end
s = Soldier.new do #the block
line = "We are drill machines, drill machines feel no pain"
2.times{ puts line }
puts line.upcase
end
puts "Action:"
s.action
也有可能在那裏使用產量構造? – Ph0en1x 2013-02-27 20:39:58
- 1. 與紅寶石
- 2. 與紅寶石
- 3. 與紅寶石
- 4. 與紅寶石
- 5. REST與紅寶石?
- 6. 與紅寶石2.1.1
- 7. 紅寶石,與File.new
- 8. clojure與紅寶石
- 9. SVG與紅寶石
- 10. 紅寶石寶石問題與升級
- 11. 紅寶石版本1.9.3p392與寶石 'monbon'
- 12. 紅寶石寶石與Acroynym在名稱
- 13. 與城邦紅寶石寶石
- 14. 紅寶石寶石「郵件」與SMTP
- 15. Apache與紅寶石 - 寶石問題
- 16. 紅寶石散列在紅寶石
- 17. 紅寶石寶石文檔
- 18. 寶石安裝紅寶石
- 19. 調試寶石紅寶石
- 20. 紅寶石程序寶石
- 21. 錯誤紅寶石寶石
- 22. Twitter的紅寶石寶石
- 23. 卸載紅寶石寶石
- 24. 紅寶石寶石 - LoadError
- 25. 紅寶石寶石LoadError
- 26. 安裝紅寶石寶石
- 27. 紅寶石機械化與jRuby 1.6.0(紅寶石1.9.2)
- 28. 嘗試更新紅寶石紅寶石2.0.0-P247與首飾盒
- 29. 紅寶石操作與紅寶石阻止ppoll
- 30. 紅寶石1.8.7與紅寶石1.9+性能
我不明白你的問題,你能否給我們提供一個例子? – Intrepidd 2013-02-27 17:59:43