Practice Library
問題一覧
カテゴリと難易度で絞り込みながら、Rubyの基礎問題を自分のペースで解けます。
文字列
Ruby で文字列 `"hello"` の文字数を返すメソッドとして**正しくないもの**はどれですか?
配列
`arr = [1, 2, 3]` の最後の要素を取得する方法として**正しくないもの**はどれですか?
ハッシュ
Ruby のハッシュ `h = { a: 1, b: 2 }` において、存在しないキー `h[:c]` にアクセスすると何が返りますか?
ブロック
Ruby でブロックを受け取るメソッドを定義するとき、ブロックを明示的に受け取る引数の書き方はどれですか?
オブジェクト指向
Ruby の `attr_accessor :name` が自動生成するものはどれですか?
文字列
Ruby で `nil` を文字列に変換すると何になりますか?
配列
Ruby の `[1, 2, 3].map { |n| n * 2 }` の結果はどれですか?
ハッシュ
Ruby でハッシュのキーと値を同時にイテレートするメソッドはどれですか?
構文
Ruby の `if` 文を1行で書く方法として正しいものはどれですか?
オブジェクト指向
Ruby でクラスのインスタンスメソッドからプライベートメソッドを呼び出せますか?
モジュール
Ruby の `Module#include` と `Module#extend` の違いはどれですか?
エラー処理
Ruby で例外を捕捉する構文として正しいものはどれですか?
入出力
Ruby の `File.read` と `File.readlines` の違いはどれですか?
文字列
Ruby の `freeze` メソッドの役割はどれですか?
モジュール
Ruby の `Comparable` モジュールを include したとき、最低限実装すべきメソッドはどれですか?
文字列
Ruby で文字列を大文字に変換するメソッドはどれですか?
配列
Ruby の `[1, 2, 3, 4, 5].select { |n| n.even? }` の結果はどれですか?
ハッシュ
Ruby の `{ a: 1 }.merge({ b: 2 })` の結果はどれですか?
ブロック
Ruby でメソッド内から `yield` を呼ぶと何が起きますか?
オブジェクト指向
Ruby でサブクラスから親クラスの同名メソッドを呼び出すにはどうしますか?
構文
Ruby の `unless` はどういう意味ですか?
モジュール
Ruby の `Module#prepend` と `Module#include` の主な違いはどれですか?
エラー処理
Ruby の `begin/rescue/ensure` において `ensure` ブロックが実行されるのはいつですか?
入出力
Ruby の `puts`、`print`、`p` の違いとして正しいものはどれですか?
文字列
Ruby の `"hello world".gsub(/[aeiou]/, "*")` の結果はどれですか?
配列
Ruby の `[[1, 2], [3, [4, 5]]].flatten` の結果はどれですか?
ブロック
Ruby の Proc と Lambda の `return` の振る舞いの違いはどれですか?
オブジェクト指向
Ruby でクラスメソッドを定義する方法として正しいものはどれですか?
構文
Ruby の `case/when` で範囲(Range)を使った条件分岐は可能ですか?
ハッシュ
Ruby の `Hash#transform_values` の動作はどれですか?
Enumerable
次のプログラムを実行すると何が表示されますか? ```ruby p (1..10).lazy.map { |num| num * 2 }.take(3).inject(0, &:+) ```
構文
次のプログラムを実行したときの結果として正しいものを選んでください。 ```ruby text = <<'END' Line1 Line2 END "END" p text ```
構文
次のプログラムを実行すると何が表示されますか? ```ruby lang = "Ruby" text = <<'END' Hello, #{lang}! END p text ```
構文
次のプログラムを実行すると何が表示されますか? ```ruby lang = "Ruby" text = <<END Hello, #{lang}! END p text ```
構文
次のプログラムを実行すると何が表示されますか? ```ruby def message <<~TEXT Hello World TEXT end p message ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby arr = ["c", "a", "b"] new_arr = arr.sort p arr p new_arr ```
オブジェクト指向
次のプログラムを実行すると何が表示されますか? ```ruby class Sample puts "A" end puts "B" ```
オブジェクト指向
次のプログラムを実行すると何が表示されますか? ```ruby class Object ITEMS = [] def push_item ITEMS << :x end end class Alpha push_item class << self push_item end end class Beta push_item def initialize push_item end end Alpha.new Beta.new p Object::ITEMS.size ```
文字列
次のプログラムを実行すると何が表示されますか? ```ruby a = "Ruby" b = " on Rails" a.concat b a.reverse! p a.index("R", 1) ```
Enumerable
次のプログラムを実行すると何が表示されますか? ```ruby charges = [] total = charges .select { |charge| charge[:active] } .sum { |charge| charge[:amount] } p total ```
エラー処理
次のプログラムを実行すると何が表示されますか? ```ruby amounts = [nil, "abc", "12abc"] p amounts.map(&:to_i) ```
Enumerable
次の2つの式の返り値の違いとして正しいものはどれですか? ```ruby charges.select { |charge| charge[:amount] >= 1000 } charges.find { |charge| charge[:amount] >= 1000 } ```
エラー処理
次のプログラムを実行すると何が表示されますか? ```ruby begin raise StandardError.new rescue => e puts e.class end ```
文字列
次のプログラムを実行すると何が表示されますか? ```ruby a = "Ruby" b = a a = a + " on Rails" p b ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby charges = [{ name: "basic", amount: 1000 }] backup = charges + [] charges[0][:amount] = 2000 p backup ```
Enumerable
次のプログラムを実行すると何が表示されますか? ```ruby amounts = [1000, 2000, 3000] result = amounts.map! { |amount| amount if amount >= 2000 } p amounts p result ```
Enumerable
次のプログラムを実行するとどうなりますか? ```ruby amounts = [1000, 2000, 3000] selected = amounts.select! { |amount| amount >= 1000 } total = selected.sum p total ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby charges = [3000, 1000, 2000] backup = charges charges.sort! p backup ```
オブジェクト指向
次のプログラムを実行すると何が表示されますか? ```ruby class Foo attr_reader :a def initialize @a = "REx" end end foo = Foo.new puts foo.a ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby arr = [1, 2].product([3, 4]) p arr ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby a = [1, 2, 3, 4] p a[1..2] ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby a1 = [1, 2, 3] a2 = [4, 2, 3] p a1 & a2 ```
配列
次のプログラムを実行すると何が表示されますか? ```ruby DEFAULT_CHARGES = [ { name: "basic", tags: ["default"] } ] charges = DEFAULT_CHARGES.map(&:dup) charges[0][:tags] << "paid" p DEFAULT_CHARGES ```