心はいつも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
RailsTutorial4.0を高速で復習する。6.5章。

演習1問目。 リスト6.20の、メールアドレスを小文字に変換するコードに対するテ …

Objective-C苦節3ヶ月アプリ作れるようになった

このブログairpucci.comのメニューにアプリ開発追加しました。 昨年秋よ …

iOS developerプログラムに登録しました

iPhoneアプリを初めてリリースしたのは2010年7月です確か。 デベロッパー …

no image
Ruby on Railsのインストール

Rubyのアップデートが終わったので、いよいよRailsをインストールします。 …

WordPress子テーマの作り方

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

Mac初期化。MavericksクリーンインストールUSB作る。

イラレやxcodeはMacBookAirに重すぎる、、そろそろ転売の時機なのかも …

no image
Homebrewをインストールする。

MacOS 10.8.5(Mountain Lion)にRuby&Ru …

no image
RailsのRoutingいろいろ

コントローラーがAbc アクションがactrionxだとして、 http://y …

RailsTutorial4.0を高速で復習する。11.3章。

11.3ステータスフィード、です。 11.3.1動機と計画、です。 仕様 mic …

RailsTutorial4.0を高速で復習する。8.2.1章。

8.2.1[このアカウント設定を保存する]、です。 RailsTutorial4 …