超初心者がエンジニアになるまでの力戦奮闘の軌跡

プログラミングをメインで学んだことのアウトプットブログ

Ruby技術者認定試験 Silver試験の模擬問題集を解いてみた #1

概要

半年ほどRubyを使用してきましたが、現状Rubyをどれほど理解しているか気になったのでRubyの資格試験の模擬問題集を解いてまとめました。

※解説は用意されていたため、全ての問題の解説は行っておりません。分からないことなどがあった際に調べたことをアウトプットのためまとめた記事になっておりますのでご注意ください。

利用サイト

https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0

実践

問題1

予約語⋯キーワードや予約語は、ある内部処理のために使用される、またはいくつかの事前定義されたアクションを表す言語内の単語(例:ifやclassなど)

もし予約語の意味がわからなくても、この問題ではRubyで実装しているときによく使うものを選べば答えられます。

予約語に関してはこちらの記事で大変詳しく説明されていました。

問題2

これは引数を可変長引数とした処理に関しての問題でした。

可変長引数では引数にアスタリスク(※)をつけることで複数の引数を取り、配列を返します。

例:

def foo (*b)
    p b
end

foo(1,2,3,4)
# => [1,2,3,4]

今回の問題では第一引数に一つ目の数字が普通に入るだけなので1が入り、残りは*bに配列として入ります。

もしも今回の引数が*bではなくただのbだったらArgumentError (wrong number of arguments (given 3, expected 2))と「引数に渡される数があっていませんよ!」というエラーが起こります。

メソッドの引数にアスタリスク - Qiita

問題4

これはTimeクラスに加算が使えるのかどうかの問題です。

下記のサイトで詳しく説明がされていますが、Timeクラスのオブジェクトは+を利用して加算を行うことができます。(/や*、%での計算はエラーが起こります。)

時刻の加減算 - 時刻(Time)クラス - Ruby入門

問題5

ローカル変数の名前の付け方についての問題です。

1. 1文字目は英小文字かアンダーバー(_)
2. 2文字目以降は英数文字、アンダーバー
3. 予約語は使用できない

注意点は3つ目の「予約語は使用できない」という点。なのでbreakなどは使えません。

変数名 - 変数 - Ruby入門

まとめ

今回は1~5問までやりました。

基礎的な問題が多いのでこの辺りの問題はRubyを使う者としてスラスラと答えられるようにします。