0
我可以/怎麼去調用使用send :name, *args, &blk
語法構造的三元運算符?我沒有一個切實的理由來做到這一點,但它出現了。在Ruby中使用`send`調用`?:`
在這裏你可以看到我難過的嘗試:
i = 7
send "?:", proc { i > 2 }, true, false
# => NoMethodError: undefined method `?:' for main:Object
proc { i > 2 }.send "?:", true, false
# => NoMethodError: undefined method `?:' for #<Proc:[email protected](irb):3>
proc { i > 2 }.call.send "?:", true, false
# => NoMethodError: undefined method `?:' for true:TrueClass
'? :'不「綁定」到一個對象,所以'send'不太可能適用於它。其他類似的語法是'if/while/begin'等。 如果在實踐中需要,我們可以使用代理對象。 – Jokester
你好,你考慮過eval/instance_eval嗎? – Bohdan
@Bohdan是的,我想這是最好的解決方案。 –