ジョギング
- 香椎浜 x 2 周 + 砂浜 = 45 分くらい
- 左ひざの内側, 走り始めると多少は楽になる
- 走るにはとても気持ちが良い天気だった
日課
- (腕立て x 50 + 腹筋 x 30) x 3
ファミリーソング
Youtube で「ドラえもん」を聞いていたら, 勝手にこの曲が流れだして, すごくいい曲だなあと思ったので.
歌詞の一部を抜粋.
ただ 幸せが一日でも多く側にありますように 悲しみは 次のあなたへの橋となりますように
先日の生誕祭でとても喜んでくれた奥さんを思い出しながら, 奥さんの側に一日でも多く幸せがありますようにと思った次第.
奥さん生誕祭
- 奥さんの誕生日祝いの本番, 香椎のオリーブでイタリアン
- 久しぶりのオリーブだったけど, 18 時に予約していたんだけど, 既に半分以上席が埋まっていて, 相変わらずの盛況ぶり
- 生ハム盛り合わせとアヒージョ, 豚肉のソテー, パスタで〆た... パスタが期待した程では無かったのが残念だった
- オリーブの後はじゃんからで 1 時間
パラリンピックやってるのに
- テレビの番組表見ても, 中継しているのは国営放送のみ (録画というバターンもあり)
- 民放は軒並み, カーリングとかやんや取り上げて, もぐもぐタイムとかまだ言ってるし...馬鹿か, カーリングも, あと一ヶ月くらしたら何もなかったような扱いになるんだろうな
今日のるびぃ ~ Ruby 技術者認定試験 Gold を受験した方の記事を参考にして (2) ~
今日の参考
http://d.hatena.ne.jp/rightgo09_ruby/20121226/p1 を参考にさせて頂いた. 有難うございます.
継承した private メソッド
以下のように private メソッドを継承した場合.
class Foo private def foo 'Private Foo#foo' end end class Bar < Foo def foo super end end
サブクラスでは, 以下のようにレシーバ付きで呼び出すことが出来る.
[4] pry(main)> Bar.new.foo => "Private Foo#foo
Object クラス内での定数定義
Object クラスでの定数定義は, トップレベルで定数を定義するのと同義になる.
CONST = 123 class Object CONST = 234 end CONST
以下, 実行例.
[1] pry(main)> CONST = 123 => 123 [2] pry(main)> [3] pry(main)> class Object [3] pry(main)* CONST = 234 [3] pry(main)* end (pry):3: warning: already initialized constant CONST (pry):1: warning: previous definition of CONST was here => 234 [4] pry(main)> [5] pry(main)> CONST => 234
ほうほう.
以下, ドキュメントの抜粋.
- アルファベット大文字 ([A-Z]) で始まる識別子は定数
- 代入によって初期化されるが, メソッド内では定義出来ない, 初期化していない定数にアクセスすると NameError が発生する
- 再代入は警告が出る
- クラス定義の外(トップレベル)で定義された定数は Object に所属する
以下, ドキュメントの抜粋.
- 親クラスとネストの外側のクラスで同名の定数が定義されているとネストの外側の定数の方を先に参照
- 定数の探索順序は, 最初にネスト関係を外側に向かって探索し, 次に継承関係を上位に向かって探索する
[1] pry(main)> class Foo [1] pry(main)* CONST = '123' [1] pry(main)* end => "123" [2] pry(main)> [3] pry(main)> class Bar < Foo [3] pry(main)* CONST = '456' [3] pry(main)* class Baz < Foo [3] pry(main)* p CONST [3] pry(main)* end [3] pry(main)* end "456" => "456" # 親クラスの定数は明示的に指定する必要がある [4] pry(main)> Foo::CONST => "123"
- トップレベルの定数定義はネストの外側とはみなされない
インスタンス変数のスコープ
以下のように, メソッドやクラスメソッドが混在する場合のインスタンス変数のスコープについて.
class Foo @foo = 123 def foo @foo = 234 end class << Foo @foo = 345 def foo @foo end end end
以下, 実行例.
[2] pry(main)> Foo.new.foo => 234 [3] pry(main)> Foo.foo => 123 [4] pry(main)> class << Foo [4] pry(main)* @foo [4] pry(main)* end => 345 [7] pry(main)> f = Foo.new => #<Foo:0x00005612fe62d948> [8] pry(main)> class << f [8] pry(main)* @foo [8] pry(main)* end => nil
以下, ドキュメントより抜粋.
@
で始まる変数はインスタンス変数であり, 特定のオブジェクトに所属している- インスタンス変数はそのクラスまたはサブクラスのメソッドから参照可能
- 初期化されていないインスタンス変数を参照すると nil が返る
ふむふむ.