重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

可変長引数を2つ定義することはできません。
可変長引数の実行結果は次の通りになります。

def bar(n1, *n2, n3)
puts "n1: #{n1}, n2: #{n2}, n3: #{n3}" # n1: 5, n2: [6, 7], n3: 8
end

bar 5, 6, 7, 8
---------------------------------------------------------------------------------------------------------
問題

実行してもエラーにならないコードを選べ
選択肢1

def bar(n)
puts n
end

bar 5

選択
選択肢2

def bar(n)
puts n
end

bar (10)

選択肢3

def bar(*n1, n2)
puts n1
puts n2
end

bar 5, 6, 7, 8

選択肢4

def bar(*n1, n2, *n3)
puts n1
puts n2
end

bar 5, 6, 7, 8

このような問題があったのですが、答えは選択肢3でした。
3がエラーにならないのはわかるのですが、1と2もならないのではないでしょうか?実際に動かしてみても正常だったのですが、何故3が答えになるのか教えてください。

A 回答 (1件)

可変長引数の説明のくだりと、「実行してもエラーにならないコードを選べ」の関係がわかりませんね。


本当に、このままの文章が過去に出ているんですか?
    • good
    • 0
この回答へのお礼

私も違和感を感じていました。RExから引用したものなのですが、問題文が間違えているのかもしれないですね...

お礼日時:2019/10/12 19:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!