ジョギング
- お休み
- 久しぶりに奥さんを連れ立って家を出たものの風雨と寒さで断念した
日課
- これまたお休み
ランチ
で, 担々麺.
主人が一人で切り盛りしているので, 注文して出てくるまで少し時間が掛かるけど, 待つだけの価値はあると思う.
香椎呑み会
森田さん、毛利さんと三人で.
〆に串かつ「もりす」で串かつを.
少し遅い時間から呑み始めたけど, 終電を気にしなくて良いのでワイワイ盛り上がって楽しかった.
ソフトウェア工学
第 1 回目が終わったので, 第 1 章をまとめたものをブログにもアップしたら, 以下のような反響があった.
うーん。これはソフトウェアはどんな特徴であるかについて述べているだけで、ソフトウェアが何かについての回答ではない気がします。>ソフトウェア工学 「第 1 章 ソフトウェアとは」のまとめhttps://t.co/siaXzLiLlH
— でぃあ (@dexia2) 2018年4月7日
ちゃんと読んでくださっているようで, 自分の読み込みと纏め方が足りていないなと反省. 次章以降の参考にさせて頂きたい.
今日のるびぃ ~ Ruby 技術者認定試験 Gold 演習問題を解いていく (18) ~
もう何度か解いているけど, Ruby 技術者認定試験合格教本 の演習問題と模擬試験を数問ずつ解いていく. ポイントは, 問題が何について問われているかがちゃんと理解出来ていること.
Q22. オブジェクト指向
以下のコードを実行すると何が表示されるか. 尚, ファイル名は constant_1.rb とする.
class C1 MSG = "msg1" MSG2 = "msg2" class C2 MSG = "C2:msg1" puts MSG puts MSG2 end puts MSG puts MSG2 end
以下のように出力されるはず.
C2:msg1 msg2 msg1 msg2
以下, irb での動作確認.
irb(main):001:0> class C1 irb(main):002:1> MSG = "msg1" irb(main):003:1> MSG2 = "msg2" irb(main):004:1> class C2 irb(main):005:2> MSG = "C2:msg1" irb(main):006:2> puts MSG irb(main):007:2> puts MSG2 irb(main):008:2> end irb(main):009:1> puts MSG irb(main):010:1> puts MSG2 irb(main):011:1> end C2:msg1 msg2 msg1 msg2 => nil
以下, 解説より抜粋.
- クラスがネストしている場合, 定数の探索は, 自クラス→外部クラスの順で行われる
- https://docs.ruby-lang.org/ja/latest/doc/spec=2fvariables.html#prio
Q23. 文法
以下のコードを実行すると何が表示されるか.
begin exit rescue StandardError puts "StandardError" rescue SystemExit puts "SystemExit" end puts "End"
以下のように出力されるはず.
SystemExit End
以下, コマンドラインによる動作確認.
$ ruby systemexit.rb SystemExit End
以下, 解説より抜粋.
- 組み込み関数 exit は, 例外 SystemExit を発生させる
- SystemExit を rescue すると, 実行を継続すること出来る, rescue しなければプログラムは終了する
Q24. 標準添付ライブラリ
stringio ライブラリの説明として適切な記述を全て選ぶ.
- 文字列を IO オブジェクトと同じように扱える
以下, irb による stringio ライブラリのサンプル.
irb(main):001:0> require 'stringio' => true irb(main):002:0> sio = StringIO.new("hoge", 'r+') => #<StringIO:0x0055e719e88ef0> irb(main):003:0> sio.read => "hoge" irb(main):004:0> sio.rewind => 0 irb(main):005:0> sio.read(1) => "h" irb(main):006:0> sio.write("OGE") => 3 irb(main):007:0> sio.rewind => 0 irb(main):008:0> sio.read => "hOGE"
以下, 解説より抜粋.
- stringio ライブラリは, 文字列に IO オブジェクトと同じインターフェースを持たせる StringIO クラスを含んでいる
- StringIO クラスは IO クラスを継承しているわけではない (Data クラスを継承している)
フムフム