From: kjana@... (YANAGAWA Kazuhisa) Date: 1999-09-06T21:27:31+09:00 Subject: [ruby-list:16529] Re: symbol (Re: Re: $B?M:`Jg=8(B (Re: Re: Ruby Workshop)) In message <19990906191000H.kyamada@hitachi-densa.co.jp> kyamada@hitachi-densa.co.jp writes: > うーむ,とりあえず,インスタンス変数へのアクセスは > メソッド経由でないとダメ. > attr はインスタンス変数へアクセスするためのメソッドを定義する. > って理解でいいと思っているんですが,リファレンスマニュアル > に書かれている"属性"と"アクセスメソッド" のうち"属性" > っていうのはどう理解したらいいんでしょう. インスタンス変数と同義です.....って言い切っちゃって構わないでしょう. > C でいうところの構造体のポインタで (*a).var を > a->var で書くみたいなイメージかな? ちょっと違う感じだなー (set 'foo "foo") と (set foo "foo") の違いっていうか. # 変数の概念は Lisp に近いっていう事で. > なぜ理解できないのか説明するのが難しいのですが, > "attr foo" ではダメで "attr :foo" でないとならない理由が > 消化できていないんです. `attr foo' だと attr の引数は「foo の値」になりますから. irb(main):001:0> class Foo irb(main):002:1> def Foo.foo irb(main):003:2> :bar irb(main):004:2> end irb(main):005:1> attr foo irb(main):006:1> end nil irb(main):007:0> Foo.instance_methods ["bar"] ....ね. -- 柳川和久 @ 東大阪市 . 大阪府 September 6, 1999 It is comparison that makes men happy or miserable.