Motomichi Matsuzaki様 志村 と申します In message "[ruby-list:40785] nil以外のときメソッドを呼ぶ", <u64y8u8y9.wl%mzaki / biol.s.u-tokyo.ac.jp>, Motomichi Matsuzaki wrote... >タブ区切りテキストで与えられるデータを解釈しようとしているのですが、 > array = line.chomp.split("\t") > float = array.shift.to_f > int = array.shift.to_i > str = array.shift.sub(/^XX/, '') >対応するフィールドがない場合 float に 0.0 や int に 0 が代入され、 >str なら例外で落ちてしまいます。 >ないフィールドには nil が代入されるための綺麗な解決法はないでしょうか? float や int も 0 でなく nil が欲しいんですよね? float = Float(array.shift.to_s) rescue nil int = Integer(array.shift.to_s) rescue nil str = array.shift.sub(/^XX/,'') rescue nil こんなのは如何でしょうか。 * 代入の右辺は () でくくった方が分かり易いです。 * Float の .to_s は要らないかも * .to_s は String() 方が良かったかな? * 変換エラーが起きたら全て nil になります。 * float、int に文字列風のがきててもエラーにならないで nil が入る。 ちょっと強引ですね。 ---------------------------------------+---------+---------+以上 2005/4/27 志村弘之 mailto: shimurahiroyuki / obun.co.jp