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

3.5演習の2もんめをやります。 2.お気付きの方もいると思いますが、リスト3. …

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

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

no image
Gitをインストールする

Rails開発がしたいのですが、今後必要になるでしょうからGitをインストールし …

40秒も待てない。

自由が丘のカフェでこれ書きました。Table Modern Service、食べ …

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

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

もうあかん!Mac OSXのスクロールを逆にする

OSXのいつのバージョンからだっけ? スクロールの向きが突如逆になったんですよね …

使ったらダメなiPhoneケーブル

iPhoneのApple純正ケーブルって、はげやすくないですか?iPhone5用 …

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

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

no image
プログラミングから離れた理由を思い出した

私は転職が多く5社で正社員で経験しています。全部IT系なのだけど全部職種が違いま …

ジョジョ専用kindle fire HDの電源が入らない!

電源が入らない!MacBookAirが真っ黒になりました。とか、 iPhoneの …