在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