在Ruby中,我可以定義一個方法foo =(巴):在Ruby中,如何檢查方法「foo =()」是否已定義?
irb(main):001:0> def foo=(bar)
irb(main):002:1> p "foo=#{bar}"
irb(main):003:1> end
=> nil
現在,我想檢查它是否已被定義,
irb(main):004:0> defined?(foo=)
SyntaxError: compile error
(irb):4: syntax error, unexpected ')'
from (irb):4
from :0
什麼是正確的語法使用這裏?我假設必須有一種方法來轉義「foo =」,以便它被解析並正確地傳遞給定義的?運營商。
謝謝!這解決了我的問題。我仍然很想知道是否有辦法逃脫foo =這樣它可以被定義爲饋送?但至少現在我可以繼續前進。 – 2010-02-27 19:24:24
這裏的問題是'foo ='總是用在賦值中,所以如果你測試了'defined',Ruby會返回''assignment''? foo()'(查看更新的答案)。 – molf 2010-02-27 19:40:50