Ruby Silver (正式名称:Ruby Association Certified Ruby Programmer Silver version 3) の試験に向けた勉強メモです。
Ruby Silver受験を考えている方の参考になれば幸いです🤗
試験の概要
- 試験時間:90 分
- 試験方法:コンピュータ試験(CBT:Computer Based Testing)
- 問題数(方式):50 問(選択式)
- 合格ライン:75 %
- 対象バージョン:Ruby 3.1.x
- 出題範囲
- 文法
- コメント
- リテラル(数値、真偽値、文字列、文字、配列、ハッシュ等)
- 変数/定数とスコープ
- 演算子
- 条件分岐
- ループ
- 例外処理
- メソッド呼び出し
- ブロック
- メソッド定義
- クラス定義
- モジュール定義
- キーワード引数
- 組み込みライブラリ
- よく使用されるクラス、モジュール(Object、数値クラス、String、Array、Hash、Kernel、Enumerable、Comparable等)
- オブジェクト指向
- ポリモルフィズム
- 継承
- mix-in
- 文法
- 料金:16,500円(税込)
詳細な試験情報はこちらを確認してください。
https://www.ruby.or.jp/ja/certification/examination/
! がつかない破壊的メソッド
-
concat: 文字列や配列を破壊的に結合 -
replace: 文字列や配列の内容を引数で与えられたものに置き換える -
delete: 配列から指定した要素を破壊的に削除 -
delete_if: 条件に一致する要素を破壊的に削除 -
clear: 配列のすべての要素を破壊的に削除 -
pop: 配列の末尾の要素を破壊的に取り除く(LIFO: Last In First Out) -
push: 配列の末尾に要素を破壊的に追加(LIFO: Last In First Out) -
shift: 配列の先頭の要素を破壊的に取り除く(FIFO: First In First Out) -
unshift: 配列の先頭に要素を破壊的に追加(FIFO: First In First Out)
別名メソッド
-
delete_ifとreject!: 条件に一致する要素を削除(破壊的) -
updateとmerge!: ハッシュの内容を他のハッシュで更新(破壊的) -
find_allとselect: 条件に一致する要素を返す -
collectとmap: 各要素に対して処理を行い、新しい配列を作成 -
member?とinclude?: 指定した要素が含まれているかを確認 -
findとdetect: 条件に一致する最初の要素を返す -
lengthとsize: 配列やハッシュの要素数を返す
DirとFileのメソッド比較
DirとFileクラスで、どっちのクラスにどのメソッドがあるか。
Dirにのみ存在
-
pwd: 現在の作業ディレクトリのパスを返す -
home: ユーザーのホームディレクトリのパスを返す -
rmdir: 指定されたディレクトリを削除する(空のディレクトリのみ)
Fileにのみ存在
-
directory?: 指定されたパスがディレクトリであるかを判定する -
chmod: 指定したファイルのアクセス権限を変更する -
chown: 指定されたファイルの所有者とグループを変更する -
extname: 指定されたファイルの拡張子を返す
共通
-
delete:-
Dir.deleteは空のディレクトリのみを削除でき、 -
File.deleteはファイルを削除する
-
ファイルのモード
File.openメソッドの第2引数に指定する、ファイルを開くモード。
-
r: 読み込みモード -
w: 書き込みモード- 既存ファイルの場合はファイルの内容を空にする
-
a: 追記モード- 常にファイルの末尾に追加される
-
r+: 読み書きモード- ファイルの読み書き位置が先頭になる
-
w+: 読み書きモード-
r+と同じだが、既存ファイルの場合はファイルの内容を空にする
-
-
a+: 読み書きモード- ファイルの読み込み位置は先頭に、書き込み位置は常に末尾になる
文字列を取り除くメソッド
-
strip: 文字列の先頭と末尾の空白文字(\t,\r,\n,\f,\v)を取り除く -
strip!: 破壊的に文字列の先頭と末尾の空白文字を取り除く -
chomp: 末尾の改行コードを取り除く -
chop: 末尾の文字を1文字取り除く。末尾が\r\nであれば、両方を取り除く
strftimeメソッドで使用できるフォーマット文字列
Rubyのstrftimeメソッドは、日付や時刻のフォーマットに使用する文字列指定があります。
他の言語と違い、間違えやすいと感じた部分は以下です。
- 小文字の
%mが月(Month)、大文字の%Mが分(Minute) -
%Iは12時間制の時刻、%Hは24時間制の時刻 - 小文字の
%hは存在しない
日付に関するフォーマット文字列
| フォーマット | 説明 | 例 |
|---|---|---|
%a |
曜日の省略名(Sun, Mon, ...) | "Sun" |
%A |
曜日のフルスペル | "Sunday" |
%b |
月の省略名(Jan, Feb, ...) | "Jan" |
%B |
月のフルスペル | "January" |
%d |
日(01-31) | "05" |
%e |
日(先頭のゼロを含まない) | "5" |
%j |
1年の通算日(001-366) | "123" |
%m |
月(01-12) | "09" |
%U |
年の週番号(週の始まりが日曜日の場合) | "42" |
%W |
年の週番号(週の始まりが月曜日の場合) | "42" |
%w |
曜日(0=日曜日, 1=月曜日, ...) | "0" |
%x |
日付(ロケールに依存) | "09/28/23" |
%D |
日付(%m/%d/%y と同じ) | "09/28/23" |
%y |
西暦の下2桁(00-99) | "23" |
%Y |
西暦の4桁(0000-9999) | "2023" |
時間に関するフォーマット文字列
| フォーマット | 説明 | 例 |
|---|---|---|
%H |
24時間制の時(00-23) | "14" |
%I |
12時間制の時(01-12) | "02" |
%M |
分(00-59) | "45" |
%S |
秒(00-59) | "09" |
%p |
午前/午後(AM/PM) | "PM" |
%Z |
タイムゾーン名 | "UTC" |
%z |
タイムゾーンのオフセット | "+0900" |
%X |
時刻(ロケールに依存) | "14:45:09" |
%r |
12時間制の時刻(%I:%M:%S %p) | "02:45 PM" |
%T |
時刻(%H:%M:%S) | "14:45:09" |
その他のフォーマット文字列
| フォーマット | 説明 | 例 |
|---|---|---|
%c |
日時(ロケールに依存) | "Sun Sep 28 14:45:09 2023" |
%% |
パーセントリテラル(% を出力) | "%" |
ヒアドキュメント
- <<識別子: 変数展開あり、改行含む
- <<'識別子': 変数展開なし、改行含む
- <<-識別子: 変数展開あり、終了識別子のインデント許可、改行含む
- <<~識別子: 変数展開あり、インデント除去、改行含む
無事に合格しました
無事に82点で合格出来ました🥳