ジョギング
- 香椎浜 x 2 周
- 背中に張りを感じつつ走る
日課
- お休み
平尾の板場 白雪
両親が年に二回くらいのドライブ旅の途中で福岡に立ち寄ったので, 平尾の「白雪」で夕飯を食べる. お出汁がとても印象的でとても美味しかった. 少しお高いけど, また行きたいお店がまたひとつ増えた.
両親
父の咳が気になったが, それ以外はとても元気で和食をつつきながら色々と話が出来たので良かった. これからも元気で長生きして欲しい. あと帰りは佐賀に寄って帰るとのことなので, 気をつけて帰って欲しい.
今日のるびぃ ~ Ruby 技術者認定試験 Gold 演習問題を解いていく (16) ~
もう何度か解いているけど, Ruby 技術者認定試験合格教本 の演習問題と模擬試験を数問ずつ解いていく. ポイントは, 問題が何について問われているかがちゃんと理解出来ていること.
Q16. 標準添付ライブラリ
以下のコードを実行すると何が表示されるか.
require 'date' d1 = DateTime.new d2 = DateTime.new p (d2 - d1).class
- Rational
以下, irb の実行例.
irb(main):001:0> require 'date' => true irb(main):002:0> irb(main):003:0* d1 = DateTime.new => #<DateTime: -4712-01-01T00:00:00+00:00 ((0j,0s,0n),+0s,2299161j)> irb(main):004:0> d2 = DateTime.new => #<DateTime: -4712-01-01T00:00:00+00:00 ((0j,0s,0n),+0s,2299161j)> irb(main):005:0> p (d2 - d1).class Rational => Rational
以下, 解説より抜粋.
irb(main):001:0> Time.now => 2018-04-05 07:47:03 +0900 irb(main):002:0> t1 = Time.now => 2018-04-05 07:47:17 +0900 irb(main):003:0> t2 = Time.now => 2018-04-05 07:47:25 +0900 irb(main):004:0> (t2 - t1).class => Float
Q17. オブジェクト指向
以下のコードを実行するとどうなるか.
module Mod def foo puts 'Mod' end end class Cls1 def foo puts 'Cls1' end end class Cls2 < Cls1 include Mod undef foo end Cls2.new.foo
- 例外発生
以下, irb による実行例.
irb(main):018:0* Cls2.new.foo NoMethodError: undefined method `foo' for #<Cls2:0x0055d8cf798328> from (irb):18 from /home/kappa/.rbenv/versions/2.1.10/bin/irb:11:in `<main>
以下, 解説より抜粋.
- Cls1 クラスで定義された foo は, Cls2 クラスで undef により定義が取り消されている
と書かれているけど...
irb(main):019:0> Cls2.ancestors => [Cls2, Mod, Cls1, Object, Kernel, BasicObject
メソッド探索的には Mod#foo が呼ばるはずなので...
- Mod モジュールで定義された foo は, Cls2 クラスで undef により定義が取り消されている
の方が適切なのでは...
Q18. 文法
以下のコードと同じ実行結果になるコードはどれか.
a, b = [1, 2]
以下のコードと同等.
a = 1 b = 2
以下, irb での実行例.
irb(main):001:0> a, b = [1, 2] => [1, 2] irb(main):002:0> p a 1 => 1 irb(main):003:0> p b 2 => 2
以下, 解説より抜粋.
- 配列の多重代入
- 左辺には, 右辺の同じ位置にある値が代入さえる
その他のパターン.
irb(main):004:0> a, *b = [1, 2, 3] => [1, 2, 3] irb(main):005:0> p a 1 => 1 irb(main):006:0> p b [2, 3] => [2, 3]
フムフム