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

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

パーフェクトRuby 2章Rubyの基礎 2-3 条件分岐と真偽値

   


p50
2-3 条件分岐と真偽値
falseとnil以外は全部true

p51
2-4 式

Rubyのプログラムは殆どがなんらかの値を返す式

名文句。

2-5 クラス
クラスは4章で別途。

クラス名はキャメルで書く。
クラス名.newでインスタンス生成する。

p52

2-5-2 インスタンス変数
インスタンス内で参照できる変数がインスタンス変数。最初に@をつける。
外部からインスタンス変数にアクセスする時はメソッドを用意してあげる。それ専用のメソッドは終わりに=をつける <=これがおもろい。 [code] class Ruler def length=(val) @length = val end def length @length end end ruler = Ruler.new p ruler.length #=> nil まだ@length値がない ruler.length = 30 # length=メソッドにval値に30を引数として渡す。@lengthに30が代入される # ruler.length=(30) #こう書いても動いた p ruler.length #=> 30 [/code] "length=" という"="までがメソッド名として定義されていて、さらにメソッド呼び出しのときは "ruler.length =" となっているところがなんともまぎらわしい。説明ないとわからんわ。 p53 インスタンス変数の外部参照、ほとんどがアクセサなので、実際はattr_なんちゃらで済む事が多い。 attr_reader(ゲッター), attr_writer(セッター), attr_accessor(ゲッターとセッター)の3種類ですね。 [code] class Scale attr_accessor :weight end scale = Scale.new p scale.weight #=> nil まだ@weight値がない scale.weight = 20 # @weightに20を代入 p scale.weight #=> 20 [/code] attr_なんちゃらのときは、ゲッターセッターメソッドだけでなく、@で始まるインスタンス変数宣言しなくてもできていることになっている。 インスタンス変数@weight ゲッターメソッドweight セッターメソッドweight= の3つがattr_accessor :weightで作られている。 attr_なんちゃらってずっとrailsの機能だと思っていたのですがrubyだったんですね。 2-5-3 self ここよくわからんので勉強するよ! selfはメソッドの中で、そのメソッドが属しているインスタンスを指す変数。 省略できるときはする。 セッターメソッドでselfを省略すると、セッターメソッドが呼び出されず単にローカル変数への代入としてみなされてしまう。 [code] class Ruler attr_accessor :length def set_default_length self.length = 30 #selfを省略しlength = 30とすると、ローカル変数lengthへの代入になってしまう #@length = 30 #こう書いても同じ end def display_length puts length #self省略可能 #puts self.length #selfを省略しない場合 #puts @length #こう書いても同じ end end ruler = Ruler.new ruler.set_default_length ruler.display_length p ruler.length #=> 30 [/code] Railsからruby始めるとすごくごっちゃになっていた箇所でした。 p54 2-5-4 初期化 インスタンスの初期化メソッドinitialize。newしたときに自動的に呼ばれる。Javaで言うコンストラクタ。初期化の値はnewの引数で渡すことができる。 [code] class Ruler attr_accessor :length def initialize(value) @length = value end end ruler = Ruler.new(30) p ruler.length [/code] 長いので次は 2-5-5 クラスメソッド から

 - テクニカル ,

Message

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

  関連記事

no image
iPad2発表

新しいiPad2がAppleより発表されました。動作は速くHDMIをサポートし、 …

詳解 Objective-C 2.0 第3版

Rubyの言語仕様を勉強する傍ら、Objective-Cも言語仕様ベースで勉強し …

パーフェクトRuby 3章制御構造/メソッド/組み込み関数 3-1演算子

パーフェクトRuby2章の後は6章をやろうと思っていましたが、やっぱり順番にやっ …

no image
accepts_nested_attributes_for

everydayRailsやっていて、 phoneモデルのテストのところで ac …

パーフェクトRuby 3章制御構造/メソッド/組み込み関数 3-2 基本的な制御構造

p75 3-2 基本的な制御構造 条件分岐、繰り返し、ジャンプ構文について 3- …

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

9.2.3フレンドリーフォワーディング、です。 ログオンしていないユーザーが編集 …

no image
サイドバーの幅を決めたい(Googleアドセンス編)

サーバー移転したままブログが放置状態になっています。 その間も検索エンジン経由で …

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

3.3.2タイトルのテストをパスさせる。です。 ひとまず、静的ページをhtmlの …

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

静的ページにaboutというページを追加するのですが、rails gを先にするの …

Mac miniの液晶モニターにDell U2713HM使っています。

次期モデルが出るかもしれないのにMac miniを買って、自分でメモリを16Gに …