[#43996] ある日付の最終時刻の求め方 (秒単位) — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

14 messages 2007/09/05
[#43998] Re: ある日付の最終時刻の求め方 (秒単位) — "GOTO Kentaro" <gotoken@...> 2007/09/05

07/09/05 に SATOH Fumiyasu<fumiyas@osstech.jp> さんは書きました:

[ruby-list:43979] File.joinなどの引数の暗黙の型変換について

From: NISHI Takao <zophos@...9.com>
Date: 2007-09-02 12:49:02 UTC
List: ruby-list #43979
にし@おかやまです。

File.joinやFile.expand_pathの引数としてFixnumをあたえるとTypeErrorになっ
てしまうのが,ファイル名として連番や日付などを使用する際にかなり不便に
感じます。

----
$ ruby -ve 'p File.join(Time.now.to_a[3..5].reverse)'
ruby 1.8.2 (2005-04-11) [i386-linux]
"2007/9/2"

$ ruby -ve 'p File.join(Time.now.to_a[3..5].reverse)'
ruby 1.8.5 (2006-08-25) [i486-linux]
-e:1:in `join': can't convert Fixnum into String (TypeError)
	from -e:1
----

暗黙の型変換を行わないというポリシーに従っての変更だときいていますが,
File.openでは第一引数にFixnumを与えてもTypeErrorが発生しないため,アン
バランスに思えてなりません。

".to_s"とタイプする手間と安全性を秤にかけた場合どうなんだということに
なるでしょうが,Fixnumをpathとして許容した場合に発生するリスクもちょっ
と考え付きませんでした。


暗黙の型変換を許すかTypeErrorになるかは,$SAFEの値に応じて決まるのが望
ましい挙動のように思えるのですがいかがでしょうか。


# Fixnumを特別扱いするのも悪くないかも

-- 
NISHI Takao   D add ninth Co.,Ltd.  http://www.Dadd9.com/
   1-2-24 Toyonari, Okayama, 700-0942, Japan               @@@@
   Phone:+81-86-801-4216  Facsimile:+81-86-801-4217        OO/
   PGP:1466 BB16 3186 CC11 1A06 713C 5518 3A2A A122 118A  -|/

In This Thread

Prev Next