今回Ruby技術者認定試験合格教本のGoldの基礎力確認問題を解く中で、調べたことや知ったことについて簡単にまとめておきたいと思います。
【Ruby技術者認定試験合格教本Gold】基礎力確認問題で調べたことまとめ(1-10)
問題1
-Iオプションはファイルをロードするパスを指定するオプション。引数で指定したディレクトリを$LOAD_PATH変数に追加する。また引数で指定したディレクトリはrequireやloadメソッドが呼ばれた時に検索される。
問題2
右辺の*を無視していいのは、右辺がひとつの項しか持っていないから。
問題3
4/5rはRationalクラスのオブジェクトを作成する。要するに4/5と表示される。
問題4
なし
問題5
メソッド内での定数の更新はエラーになる
問題6
ブロック引数を{…}で囲む場合は、引数の()を省略できない。do … endの場合は、引数の()を省略可能。要するに結合度が{ }は強いと言う話
問題7
ブロック付きメソッドから呼び出し元ブロックを実行するには、yieldを使う。もしくは引数に&をつけた変数を定義してブロックをProcとして取得してからcallする。
問題8
「*」のついたメソッド引数は可変長引数になる。hogeの引数はargs[0]に格納される。実行結果を123と表示するにはargs[0]か*argsとする。
配列に要素が1個しかない場合のみ、同じ挙動となります。
p(*args)
のようにした場合、args
の中身が展開されてバラバラな引数として渡されます。1個しかなければp args[0]
と同じですが、2つあった場合はp args[0], args[1]
と同じ動作になります。
問題9
キーワード引数の中で、任意の値を受け取れるようにしたい場合は、**のように引数の前につなげることで明示したキーワード以外の引数をHashオブジェクトで受け取れる。
問題10
Rubyのラムダ式の書き方を参照する