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