[#39804] CGIでのリダイレクションの書き方 — Yoichiro Takehora <yoichiro@...>
こんにちは、竹洞です。
7 messages
2004/07/02
[#39811] keyword-argument-like argument passing via Hash — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
4 messages
2004/07/02
[#39814] Socket:IPヘッダの編集方法 — takeshi honda <moecho21@...>
本田と申します。
6 messages
2004/07/02
[#39819] [ANN] Ruby-GetText-Package-0.6.0 — Masao Mutoh <mutoh@...>
むとうです。
4 messages
2004/07/04
[#39822] (要素がString, Fixnum 以外の)配列の集合演算 — Hiroshi Takagi <gollum@...>
高木といいます、よろしく。
11 messages
2004/07/05
[#39823] Re: (要素がString, Fixnum 以外の)配列の集合演算
— 卜部昌平 <s-urabe@...>
2004/07/05
mput です。
[#39824] Re: (要素がString, Fixnum 以外の)配列の集合演算
— Hiroshi Takagi <gollum@...>
2004/07/05
高木です。
[#39826] Re: (要素がString, Fixnum 以外の)配列の集合演算
— nobu.nakada@...
2004/07/06
なかだです。
[#39856] 直接関係のない配列の有無が、ある配列の値に影響する不具合 — "Hisashi Yahata" <yahatah@...>
5 messages
2004/07/17
[#39863] forループの速度 — Masahiro Sato <msato@...>
15 messages
2004/07/20
[#39868] イテレータとfor文 — OOTANI TAKASHI <otn@...5.so-net.ne.jp>
大谷と申します。
31 messages
2004/07/20
[#39870] Re: イテレータとfor文
— Nowake <nowake@...>
2004/07/20
[#39886] Re: イテレータとfor文
— Tietew <tietew-ml-ruby-list@...>
2004/07/21
[#39891] Re: イテレータとfor文
— OOTANI TAKASHI <otn@...5.so-net.ne.jp>
2004/07/21
大谷です。
[#39910] Re: イテレータとfor文
— Atoh <atoh@...7.jp>
2004/07/23
あとうです。
[#39911] Re: イテレータとfor文
— OOTANI TAKASHI <otn@...5.so-net.ne.jp>
2004/07/23
大谷です。
[#39889] dRuby: 急に遅くなる — ちば けいすけ <chowder@...>
ちばです。
7 messages
2004/07/21
[#39908] htreeの高速化 — MoonWolf <moonwolf@...>
MoonWolfです。
6 messages
2004/07/23
[ruby-list:39818] Re: keyword-argument-like argument passing via Hash
From:
NISHIMATSU Takeshi <t-nissie@...>
Date:
2004-07-03 11:03:42 UTC
List:
ruby-list #39818
西松です.
ささださま, アドバイスありがとうございます.
>>> [ruby-list:39812]
> Hash のキーをチェックするなら,ハッシュのキーに変なもの
> を指定されてたら例外を発生させればいいのではないでしょうか.
. . .
> 直接 instance_eval を
> 実行してしまうのは,ほかにも変なことやっちゃうかもしれないので,
> できれば避けた方がいいんじゃないかと思います.
なるほど. block引数やinstance_evalなどを使わないで
シンプルなほうがよいと思い直しました.
>>> [ruby-list:39813]
> 今後,これに代わる表現として K.new(key: val, ...) というも
> のになるそうです.
ぼくもキーワード引数
<http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby2.0spec>
ができたら, Hashの引数がどうなってしまうかはよくわか
らないのですが, キーワード引数のほうが便利そうですし,
かんたんな書き換えで対応できるようにしておいたほうが
よいと思いました.
それで, いまのスクリプトは下記のようなかんじになって
います.
#!/usr/bin/env ruby
#defaulthash.rb
class K
attr_reader :attribs
def initialize(defaultK=nil, arg_hash=nil)
case defaultK
when K
@attribs = defaultK.attribs.dup # dup必要?
when Hash, NilClass
arg_hash = defaultK
@attribs = {:attrib1 => 'default1',
:attrib2 => 'default2',
:attrib3 => 'default3'} # default values
else
raise TypeError
end
case arg_hash
when Hash
arg_hash.each do |key, value|
if @attribs[key]
@attribs[key]=value
else
raise ArgumentError, "こんなキーしりません: #{key}"
end
end
when NilClass
# use default
else
raise TypeError
end
end
def to_s
return "#{@attribs[:attrib1]}, #{@attribs[:attrib2]}, #{@attribs[:attrib3]}\n"
end
end
k1 = K.new
print "k1 #{k1}"
k2 = K.new(:attrib1=>'11111111', :attrib2=>'22222222')
print "k2 #{k2}"
k4 = K.new(k2, :attrib2=>'XXXXXXXX', :attrib3=>'YYYYYYYY')
print "k4 #{k4}" # 第一引数はK. 残りの引数でいくつか変更をする.
print "k2 #{k2}" # 上のdupがないとk4といっしょに変わってしまう.
k5 = K.new({:attrib2=>'HHHHHHHH', :attrib3=>'KKKKKKKK'})
print "k5 #{k5}" # {}があっても大丈夫. 将来的にこっちの方がよい?
k6 = K.new(:attlib1=>'LLLLLLLL')
--
love && peace && free_software
西松 毅