現在、ハッシュのすべての文字列値を小文字に調整しようとしています。このハッシュには複数の値の型(nil、string、integer)が含まれているため、ハッシュ内のnil値のためにdowncaseでハッシュ全体を実行するとエラーが発生します。Ruby - nil値も含むハッシュの文字列値をダウンケース
NoMethodError: undefined method "downcase!" for nil:NilClass
私は、Rubyの新しいきれいなブランドだと私は最高のは、このハッシュを介して実行し、ゼロまたは整数値をスキップするかどうかはわかりませんでした。私は.mapを使用してすべての値を文字列に変換してから値をダウンケースしようとしましたが、最終結果に差異がないか、エラーが表示されます。
testHash = testHash.map(&:to_s)
testHash.map(&:downcase!)
(I've also attempted testHash.each {|k,v| v.downcase!}
Rubyでこれを正しく記述する方法がわかりません。追加情報が必要な場合はお知らせください、ありがとうございます。
これを実行したところ、エラーは発生しません。しかし、私が知っている値の一つを呼び出す際に大文字があると、それでも大文字になっています。なぜそれが実際に調整されていないのか?ダウンケースの終わりに? – Laura
あなたは 'v.downcase! if v.respond_to?(:downcase!) 'これはややダックタイプです。時には、何かが*できるものではなく*行うことができることを求めることが時々あります。 – meagar
Laura、これはうまくいくはずです。あなたの質問を編集して、これがうまくいかない場合のハッシュ例を表示できますか?この例では、ほんのわずかなキー、おそらく2つまたは3つを含んでいます。 –