shou.com
JP / EN

Ruby試験 組み込みライブラリ(配列)

Sun May 6, 2018
Sun May 6, 2018

Ruby Sliver試験によくでる組み込みライブラリの配列問題。

よく???になるのでメモ。

こんな感じでよく出題される。

[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書より

問題)

以下の実行結果になるように、Xに記述する適切なコードを選びなさい。(2つ選択)

1
2
3
4
5
6
a = [ 1, 2, 3, 4]
x.each do |i| print i, " " end

<!-- 実行結果 -->

1 2 3

答え)

  • a[0..-2]
  • a[0,3]

a[0..-2]

Silver試験でよく出る配列の添字演算子[ ]ですね。

配列の負の添字は、最後の要素から逆順に要素を指定する番号です。最後の要素は-1-は配列の個数です。

なので、この問題の場合はどうなるかというと。

a = [ 1, 2, 3, 4]4の要素が-1になるわけです。今回の問題の場合は、実行結果が1 2 3になるようにしなければならないので、0から-2が正解になります。

1
2
3
4
5
6
7
# 要素
     -4 -3 -2  -1
a = [ 1, 2, 3, 4]

# 試しに1を参照
irb > p [-4]
=> 1

そして、この問題にはまだ引っ掛けがあります。.....の範囲の違いです。これは単に右側の数値を含むか否かの違いだけ。

  • .. 含む
  • … 含まない

覚え方は、..は二文字だから「含む」、...は二文字以上だから「含まない」。

というわけで、a[0..-2]を日本語的に直すと「aの配列の0番目から要素の-2を含む(3)」までとなります。

a[0,3]

これは超単純。

カンマは、配列のある位置からの個数を指定するので、この場合は、0番目から3個の要素を参照する。

[改訂2版]Ruby技術者認定試験合格教本

See Also