0

Rubyを学んでいます。クラスからメソッドを定義解除できます。

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 に答える