心はいつも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演習、3もんめ、最後の問題です。 3.(上級者向け)「Heroku pag …

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

10.3.4マイクロポストを削除する、です。 仕様 マイクロポスト個別に削除でき …

MacにGUIのSQLite3クライアントを入れる。

ターミナルからコマンドたたけばいいだけですが、DBスキーマをちょっと確認したいと …

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

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

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

8.2.5ユーザー登録と同時にサインインする、です。 ユーザーが登録を行った後、 …

BiglobeでWimax契約して怒った

久々にダメサービスに遭遇して怒ったので書きます。 BiglobeでWimax契約 …

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

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

Mac miniのメモリを自力で16Gに増設しました

Mac miniとDellの27インチIPS液晶、とても快適です。もっと快適にす …

no image
恐ろしや、WordPressのDBパスワードは平文でおいてある

先ほどサーバーのDBをいじっていてですね、、久々だったのでDBパスワード忘れてし …

確定申告終わったぁ〜MoneyForwardのおかげです

確定申告終わりました。青色で申請しているので決算書必要なのですが、昨年から使い始 …