Rubyクイズ

Rubyクイズのカバー画像

こんにちは、dev.toの皆さん!
これが僕の初めての投稿です。頭を使うゲームが好きな人がいるといいなと思っています。面白いパズルをいくつか紹介したいと思います。

1. コードの正しい結果を選んでください (ruby 3.0):

{ 'language' => 'ruby', 'position' => 'engineer' }.transform_keys({ language: 'rust' }, &:to_sym)
  • {"rust"=>"ruby", :position=>"engineer"}
  • { :rust => 'ruby', :position => 'engineer' }
  • { "rust" => :ruby, 'position' => :engineer }
  • { :rust => :ruby, :position => :engineer }

答えは {"rust"=>"ruby", :position=>"engineer"} です。

2. コードの正しい結果を選んでください (ruby 3.0):

{ e: :n, g: :i, n: :e, e: :r }.except(:e)
  • NoMethodError (undefined method 'except')
  • {:g=>:i, :n=>:e}
  • {:g=>:i, :n=>:e, :e => :r}
  • { :e => :n, :g => :i, :n => :e }

答えは {:g=>:i, :n=>:e} です。

3. ラムダを呼び出す誤った方法を選んでください

  • ->(){}::call
  • ->(){}[]
  • ->(){}()
  • ->(){}::===

答えは ->(){}() です。

4. コードの正しい結果を選んでください

!?q::!. |001
  • true
  • false
  • raise an error
  • 1

答えは false です。

5. 配列 [0,1,2,3,4,5] を作成する正しい方法を選んでください

  • Array[0..5]
  • (0..4).take(5)
  • [*0..5]
  • String(012345).split('').map(&:to_i)

答えは [*0..5] です。

6. 以下のコードがあります

class Animal
  @@count = 0

  def self.inc
    @@count += 1
  end

  def self.count
    @@count
  end
end

class Cat < Animal
  @@count = 100

  def self.count
    @@count
  end
end

Animal.inc
Cat.inc

コードの正しい結果を選んでください

[Animal.count, Cat.count]
  • [1, 101]
  • [101, 101]
  • [1, 102]
  • [102, 102]

答えは [102, 102] です。

7. 以下のコードがあります

class Item
  def self.count
    $COUNT
  end

  def self.increment
    $COUNT += 1
  end
end

BEGIN { $COUNT = 0 }
Item.increment

コードの正しい結果を選んでください

Item.count
  • 0
  • 1
  • 101
  • undefined method '+' for nil:NilClass

答えは 1 です。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/neodelf/ruby-quiz-4hb4