ジョギング
- 香椎浜 x 2 周
- 軽装で走っても汗がいい感じで流れる季節になってきた
- 足の痛みはじょじょに良くなってきている感
日課
- (腕立て x 50 + 腹筋 x 50) x 3
イライラ
- ちょっとした問題が解決出来ないイライラで奥さんに八つ当たりしてしまった
- ごめんなさい
今日のるびぃ ~ Ruby 技術者認定試験 Gold 演習問題を解いていく (14) ~
もう何度か解いているけど, Ruby 技術者認定試験合格教本 の演習問題と模擬試験を数問ずつ解いていく. ポイントは, 問題が何について問われているかがちゃんと理解出来ていること.
Q10. 文法
4 行目で raise される例外オブジェクトのクラスは何か.
begin "cat".narrow rescue NameError raise end
- NoMethodError
以下, irb での実行例.
irb(main):001:0> begin irb(main):002:1* "cat".narrow irb(main):003:1> rescue NameError irb(main):004:1> raise irb(main):005:1> end NoMethodError: undefined method `narrow' for "cat":String from (irb):2 from /home/kappa/.rbenv/versions/2.1.10/bin/irb:11:in `<main>'
以下, 解説より抜粋.
- オブジェクトに存在しないメソッドを実行した場合, NoMethodError オブジェクトが発生する
- 出題コードでは, NoMethodError が発生するので, 3 行目以降の rescue でそのまま raise される
Q11. 文法
以下の実行結果になるように, [ x ] と [ y ] に記述する適切なコードを選ぶ.
while [ x ].gets puts $_ if $_ =~ /Ruby/ end [ y ] java programming Ruby programming C programming
以下, 実行結果.
Ruby programming
- [ x ] = DATA / [ y ] = __END__
以下, スクリプトでの実行例.
$ cat sample.rb while DATA.gets puts $_ if $_ =~ /Ruby/ end __END__ java programming Ruby programming C programming $ ruby sample.rb Ruby programming
以下, 解説より抜粋.
- __END__ 以降に記述した内容は, File オブジェクト DATA から読み出すことが出来る
- ソースファイルの __END__ 以降は解析, 実行の対象にならないので, その部分にプログラムが利用するためのデータを書き込んでおくことができる
- __END__ を含まないプログラムにおいては DATA は定義されない
Q12. 文法
以下の実行結果になるように, [ x ] に記述する適切なコードを選ぶ.
def method puts "Hello, World" end [ x ] def method old_method puts "Hello, Ruby World" end method
以下, 実行結果.
Hello, World Hello, Ruby World
- alias old_method method
以下, irb での実行例.
... irb(main):009:0> method Hello, World Hello, Ruby World => nil
以下, 解説より抜粋.
- alias は, 第一引数に新メソッド名, 第二引数に旧メソッド名を指定する
- メソッド名は, 識別子かシンボルで記述する
フムフム