[#29170] Call for Papers Linux Conference 2001 — akira yamada / やまだあきら <akira@...>

18 messages 2001/04/10
[#30213] Re: Call for Papers Linux Conference 2001 — akira yamada / やまだあきら <akira@...> 2001/06/13

[#29190] Time Stamp Copy of File.copy — "たけ(tk)" <ggb03124@...>

 ftools.rb の move では utime を行っていて日付が同じになりますが、copy

42 messages 2001/04/11
[#29193] Re: Time Stamp Copy of File.copy — matz@... (Yukihiro Matsumoto) 2001/04/11

まつもと ゆきひろです

[#29201] Re: Time Stamp Copy of File.copy — " たけ (tk)" <ggb03124@...> 2001/04/11

たけ(tk)です。

[#29203] Re: Time Stamp Copy of File.copy — WATANABE Hirofumi <eban@...> 2001/04/11

わたなべです.

[#29212] Re: Time Stamp Copy of File.copy — Minero Aoki <aamine@...> 2001/04/12

あおきです。

[#29215] Re: Time Stamp Copy of File.copy — " たけ (tk)" <ggb03124@...> 2001/04/12

たけ(tk)です。

[#29220] Re: Time Stamp Copy of File.copy — Minero Aoki <aamine@...> 2001/04/12

あおきです。

[#29234] Re: Time Stamp Copy of File.copy — " たけ (tk)" <ggb03124@...> 2001/04/13

たけ(tk)です。

[#29236] Re: Time Stamp Copy of File.copy — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#29238] Array#include! — " たけ (tk)" <ggb03124@...> 2001/04/13

たけ(tk)です。

[#29244] Re: Array#include! — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#29348] Open3 — NISHIO Mizuho <mzh@...>

どうも西尾です。

16 messages 2001/04/20

[#29397] rnet.rb 〜高レベルネットライブラリ〜 — rubikitch <rubikitch@...>

るびきちです。

11 messages 2001/04/24

[ruby-list:29100] Re: nil.to_f

From: wada@...2.off.ne.jp
Date: 2001-04-04 08:27:09 UTC
List: ruby-list #29100
ruby をはじめて 2 日目の和田です. 

まつもとさんご本人からお返事頂けて光栄です. 

From: matz@zetabits.com (Yukihiro Matsumoto)
Subject: [ruby-list:29088] Re: nil.to_f
Date: Wed, 4 Apr 2001 08:28:56 +0900

> まつもと ゆきひろです
> 
> In message "[ruby-list:29079] nil.to_f"
>     on 01/04/04, wada@mail2.off.ne.jp <wada@mail2.off.ne.jp> writes:
> 
> |さて, 早速質問なのですが,
> |
> |nil.to_i => 0
> |
> |の method が定義されていて, 
> |
> |nil.to_f
> |
> |の method が定義されていないのはなにか理由があるのでしょうか.
> 
> nil.to_iが過去との互換性のための盲腸のようなものだから、です
> かね。だから、変えるならむしろnil.to_iをなくすべき。

過去ログを調べてみると, nil に to_i や to_f の method を定義すべきでは
ないというのは, ruby がよりエラーを検出できる方向に向かっているための
ようですね([ruby-list:9182]).

> Perlと違って型の違いをちゃんと認識する(必要に応じて変換する)
> のがRuby流です。例外が起きたら捕捉すればよいわけですし。
> 
>   val = (data[num].to_f rescue 0.0)

このへん, 勘違いしてました. http://www.ruby-lang.org/ja/testimony.html 
を読んで, ruby では Perl のように終始変数の型を気にしたくない人向けだ
と思ってしまっていました.

ところで, 以下のようなスクリプト

% cat test.rb

while gets
  $_ = split
  0.step(2, 1) do |i|
    begin
      $_[i] = $_[i].to_f
    rescue
      $_[i] = 0.0
    end
  end
  STDOUT << "#{$_[0]}\t#{$_[1]}\t#{$_[2]}\n"
end

を実行してみたのですが, 

% ruby test.rb

1 2 3  (標準入力)
1.0     2.0     3.0  (標準出力)
1 2    (標準入力)
tmp3.rb:5: undefined method `to_f' for nil (NameError)
        from tmp3.rb:3:in `step'
        from tmp3.rb:3

となって rescue されませんでした. 何がまずいのでしょうか. 

# 今のところ nil.to_f については, Object クラスに to_s が定義されてい
# て nil.to_s => "" となってエラーにならないことを利用して,
# data[num].to_s.to_f なんてことをやって nil.to_f のエラーでとまらない
# ようにしています (nil.to_s.to_f => 0.0).

In This Thread