心はいつも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

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

  関連記事

カスペルスキーを使っています

PCのウィルススキャンは、多くの人が使っているかと思います。 大手3社のソフトを …

WindowsキーボードをMacで使う

キーボード難民です。Mac miniでApple純正のキーボードを使っていました …

no image
RailsTutorial4.0を高速で復習する。3.5章。最後の問題。

3.5演習、3もんめ、最後の問題です。 3.(上級者向け)「Heroku pag …

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

11.2.3「フォローしているユーザー」ページと「フォロワー」ページ、です。 仕 …

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

7.6演習 1問目です。 リスト7.30のコードを使用して、7.1.4で定義され …

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

4.2文字列(string)とメソッド、です。 ここからはrubyの文法について …

herokuのWe’re sorry, but something went wrong.に苦しんだ

Rails3.2環境に戻してアプリを作ろうとしています。 herokuにpush …

メタプログラミングRuby第1章

初めてのRuby2章と8章をやったところで、メタプログラミングRubyに進みます …

パーフェクトRuby 2章Rubyの基礎 2-2 変数と定数

p47 2-2-1 ローカル変数 スコープは ・ブロック内 ・メソッド定義内 ・ …

no image
Railsの%

Rubyの%じゃなくてRailsの%です。 RailsではSQLを生成するwhe …