ジョギング
- 別府の街 (海沿い) を 40 分くらい
- 知らない街を走るのって気持ち良い
日課
- お休み
開発合宿二日目
地獄めぐりからの鶴見岳にロープウェイで登ったり, 奥さんと楽しい一日を過ごすことが出来た.
今日のるびぃ ~ Ruby技術者認定試験【Gold】模擬問題を解いてみる (re: 7) ~
もう何度か解いているけど, 再び, Ruby技術者認定試験【Gold】模擬問題 を 3 ~ 5 問くらいずつ解いていく.
Q22. 正規表現
以下のコードの実行結果から __(1)__ に当てはまるものを選択する.
# コード /(\d+)/ =~ "hello24world" puts __(1)__ # 実行結果 24
$1
以下, irb による実行例.
irb(main):001:0> /(\d+)/ =~ "hello24world" => 5 irb(main):002:0> irb(main):003:0* puts $1 24 => nil
解説がイマイチだったので, プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで を参考にさせて頂く.
- 正規表現内に
() = メタ文字
内部で文字列をキャプチャ, グループ化する - 設問では文字クラス
\d
(10 進数字[0-9]
) をキャプチャすることを意図している - キャプチャした内容は特殊なローカル変数
$1
$2
$3
... の順番に代入される
Q23. コマンドラインオプション
以下のコマンドの実行結果から __(1)__ に当てはまるものを選択する.
# コマンドライン $ ruby __(1)__ 'p 1024 * 5' # 実行結果 5120
-e
以下, コマンドラインでの実行例.
$ ruby -e 'p 1024 * 5' 5120
以下, 解説より抜粋.
-e
オプションは引数で指定した文字列を評価して, 結果を出力するオプションである
Q24. オブジェクト指向
以下のコマンドの実行結果から __(1)__ に当てはまるものを選択する.
# コード class Person def __(1)__(name) @name = name end def info puts "My name is #{@name}." end end Person.new("Jim").info # 実行結果 My name is Jim.
initialize
以下, irb での実行例.
irb(main):001:0> class Person irb(main):002:1> def initialize(name) irb(main):003:2> @name = name irb(main):004:2> end irb(main):005:1> def info irb(main):006:2> puts "My name is #{@name}." irb(main):007:2> end irb(main):008:1> end => :info irb(main):009:0> Person.new("Jim").info My name is Jim. => nil
以下, 解説より抜粋.
initialize
メソッドは、オブジェクトの初期化処理を定義するメソッド- オブジェクトが生成されるときに呼び出される
initialize
メソッドは private メソッドで, 他言語でのコンストラクタに相当する
irb(main):012:0> Object.private_methods.grep(/init/) => [:initialize, :initialize_copy, :initialize_dup, :initialize_clone]
フムフム.