0

我正在学习红宝石。您可以取消定义类中的方法:

class Person
  undef :talk
end

但是当我尝试这段代码时,我发现如果我不使用“:”符号,它也可以工作:

class Person
   undef talk
end

所以我想知道这个“:”是否是必要的,这个“:”代表什么。

4

2 回答 2

2

:talk是一个符号,你应该不使用:

undef talk

对象#undef

请注意,undef 的参数是方法名称,而不是符号或字符串。

于 2013-08-17T08:04:36.037 回答
2

:foo是 Ruby 中的符号;粗略地说,它是一个以名称为值的实习字符串。

Object#undef 根据文档,期望该方法作为参数,而不是字符串或符号。在这种特殊情况下,根据文档,符号语法不正确。

于 2013-08-17T08:04:43.890 回答