ジョギング
- 香椎浜 x 2 周
日課
- (腕立て x 50 + 腹筋 x 50) x 3
豚汁
- お昼に豚汁とうどんを煮込んで食べた
- 美味しかった
今日のるびぃ ~ Ruby 技術者認定試験合格教本 (Silver/Gold 対応) Ruby 公式資格教科書 模擬試験 (13) 文法 (3) ~
irb に動作確認環境は以下の通り.
$ ruby --version ruby 2.1.10p492 (2016-04-01 revision 54464) [x86_64-linux] $ irb --version irb 0.9.6(09/06/30)
文法 (8)
Q20. 以下の実行結果になるように, [ x ] に記述する適切なコードを選べ.
# コード tag = ->(t, msg) { print "<#{t}>#{msg}</#{t}>" } tag.[ x ](:p, 'Hello, World') # 実行結果 Hello, World
以下, 解答.
- call
以下, irb にて確認.
irb(main):001:0> tag = ->(t, msg) { print "<#{t}>#{msg}</#{t}>" } => #<Proc:0x005602b73b55c8@(irb):1 (lambda)> irb(main):002:0> tag.call(:p, 'Hello, World') <p>Hello, World</p>=> nil
以下, 解説より抜粋.
- lambda 式は, call で実行する
文法 (9)
Q23. 以下のコードを実行すると何が表示されるか.
begin exit rescue StandardError puts 'StandardError' rescue SystemExit puts 'SystemExit' end puts 'End'
以下, 解答.
SystemExit End
以下, スクリプトにて確認.
$ cat exit.rb begin exit rescue StandardError puts 'StandardError' rescue SystemExit puts 'SystemExit' end puts 'End' $ ruby exit.rb SystemExit End
以下, 解説より抜粋.
- 組み込み関数
exit
は, 例外SystemExit
を発生させる - これを
rescue
すれば, プログラムの実行は継続し,rescue
しなければプログラムは終了する
$ cat exit.rb begin exit rescue StandardError puts 'StandardError' end puts 'End' $ ruby exit.rb $
上記の例では, exit
を rescue
していないのでプログラムは即終了している.
文法 (10)
Q26. 以下の実行結果になるように, [ x ] に記述する適切なコードを選べ.
# コード add = Proc.new {|x, y| x + y} puts [ x ] # 実行結果 3
以下, 解答.
- add.call(1, 2)
以下, irb にて確認.
irb(main):001:0> add = Proc.new {|x, y| x + y} => #<Proc:0x005646a821df28@(irb):1> irb(main):002:0> puts add.call(1, 2) 3 => nil
以下, 解説より抜粋.
- Proc オブジェクトのコードブロックは
call
で実行する call
の引数は,| |
で囲まれた変数に渡される
フムフム.