2014-01-19 11 views

答えて

2

Module#attr_accessor

attr_accessor(シンボル、...)→nilの

attr_accessor(文字列、...)→nilを(新規のRuby 2.1で導入された)

このモジュールの名前付き属性を定義します。名前はsymbol.id2nameで、インスタンス変数(@name)とこれに対応するアクセスメソッドを作成して読み取ります。また、name =と呼ばれるメソッドを作成して属性を設定します。 文字列の引数はシンボルに変換されます。


これは、attr_accessorを使用しての必要ですか?

いいえ、シンボルや文字列は許可されています。

この情報を読む - Understanding Ruby symbol as method call

+0

文字列を許可するこの定義は、かなり新しいです... – PinnyM

+0

@PinnyMはい..私は知っている..だから私はリンクされている.. –

2

一方ルビーの現在のバージョン(2.1)permits passing a string(@ArupRakshitにより述べたように)、ルビーdid not(2.0およびそれ以前)の古いバージョン。そのため、Ruby 2.1に依存していないコード(ほとんどすべてのコード)はシンボルを渡す必要があります。

これとは別に、アトミックでありオーバーヘッドが少なく、文字列よりも属性定義に沿って意味的に多くのシンボルを渡す必要がある場合がほとんどです。

関連する問題