だから私はPrologとRubyの両方が初めてです。大学でProlog、独学でRubyを学ぶ。そして、Prolog にあるように、Ruby にも「don't care」または「trow away」変数があるかどうかを考えていました。
irbを開いてこれを実行しました(アンダースコアが「気にしない」記号であると仮定します)
1.9.2-p290 :003 > _, b, c = [1,2,3]
=> [1, 2, 3]
1.9.2-p290 :004 > b
=> 2
1.9.2-p290 :005 > c
=> 3
結果は実際に私が期待したものです。しかし、その後、アンダースコアの値がどこにあり、それがどのクラスであるかに興味がありました
1.9.2-p290 :006 > _
=> 3
1.9.2-p290 :008 > _.class
=> Fixnum
まあ、それは奇妙です。価値を捨てるべきではありませんか?なぜ他の値が保存されているのですか?
次に、アンダースコアを使用してさらにテストを行い、実際に何が起こっているかを確認しました。最後に評価された値があります。
1.9.2-p290 :017 > 1
=> 1
1.9.2-p290 :018 > _
=> 1
1.9.2-p290 :019 > "string"
=> "string"
1.9.2-p290 :020 > _
=> "string"
1.9.2-p290 :021 > Hash
=> Hash
1.9.2-p290 :022 > _
=> Hash
だから私の質問は次のとおりです。実際にアンダースコアは何のためにあるのですか? それは本当に気にしない変数ですか、それとも何か他のものですか?それの本当の名前は何ですか?(Googleで「don't care ruby variable」というものをあまり見つけられないので)