心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

attr_accessorでRuby文法を噛み締める

   


作りたいwebアプリがあって、プログラムやろう!となって現在にいたってる訳です。
Railsでやると早いというので初めてみたのが9月の終わり。確かにはやかった。で、なんとか作りたいものを作り出しているのですが、ここにきてRailsのメソッド類よりもRubyの文法というか言語アーキテクチャにちゃんと向き合いたいと思うようになりました。
偉いぞ自分。プログラム始めてある程度経過すると言語仕様に向き合いたいと人が思うようになるのはなぜなのでしょう?ただ書いて動けば楽しいしいいんじゃない?別に。とはならない。みんな、そう。
キチンと正しく動くことを確信したい=そういうサービスを提供したいっていうプロ意識でしょうか。
Railsでとっととかければいいやーを脱却し、Rubyを噛み締めだしています。がんばれー
20140115-222229.jpg

で、早速。
Rubyのアクセッサメソッドにattr_accessorというのがあって引数をシンボルで書けばメソッドを作ってくれてインスタンス変数にアクセスできるのがあって、

 
class Book
 attr_accessor :title, :price
 def initialize(title, price)
  @title = title
  @price = price
 end 
end

Rubyリファレンスによるとattr_accessorはModuleで定義されている。
attr_accessorの引数としてシンボルで

 :ranranruby

とかくと、ranranrubyという名前の@ranranrubyというインスタンス変数にアクセスできるメソッドが勝手に作られるのと同じになる。

 
class Book
 attr_accessor :title 
end 

 
class Book
 def title 
  @title 
 end
 def title=(val) 
  @title = val
 end 
end

と同じ。
なぜ引数をシンボルの形で一意にすべきなのかとか気になり、Rubyでattr_accessorを実装しているところを見たいと思うのですが、どこでみれるのかわからず。
実装を見たいと思いつつ、先に進むことにします。 実装は見ていないですが、言語仕様はここhttp://www.ruby-doc.org/core-2.0/にあることがわかった。

 - テクニカル

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
IBActionのIBって?

railsもやってますが、xcodeも再開しています。 ところで、 IBActi …

OpneSSL,Readline,Libyamlをインストールする

先ほどインストールしたHomebrewを使って、rbenvをインストールしたいと …

no image
RailsTutorial4.0を高速で復習する。6.2.3章。

6.2.3長さを検証する、です。空データを拒否した次は、入力できるデータ長の制限 …

no image
gamilアカウントが乗っ取られました

朝起きてすぐ行うメール確認。iphoneでgmail接続できないってエラーが出る …

no image
destory

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

BD再生のオープンソース

メディアはシリコンすら持ちたくない主義なのですが、どうしてもBluelay Di …

no image
RailsTutorial4.0を高速で復習する。10.2章。

10.2マイクロポストを表示する、です。 ポストの投稿ではなく、表示だけを先に作 …

no image
RailsTutorial4.0を高速で復習する。10.3.2章。

10.3.2マイクロポストを作成する、です。 テストを書く micropostの …

no image
RailsTutorial4.0を高速で復習する。11.2章。

11.2フォローしているユーザー用のWebインターフェイス、です。 モデルができ …

WordPress子テーマの作り方

デザイン変更したairpucci、TwentyTwelveというWordPres …