[#48430] WEBrick — 牛坂 博則 <ushizaka.hironori@...>
|牛坂ともうします。
8 messages
2011/10/03
[#48443] 関数の戻り値について — "Jun'ya Shimoda" <jun-shimo@...>
下田です。
7 messages
2011/10/07
[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>
下田です。
13 messages
2011/10/09
[#48454] Re: 1.8.7と1.9.2の挙動の違いについて
— dezawa <dezawa@...>
2011/10/10
出沢です
[#48467] net/https のproxy経由接続シーケンスについて — KASUGA Toru (春日 玄) <kasuga.toru@...>
春日と申します。
7 messages
2011/10/14
[#48468] Re: net/https のproxy経由接続シーケンスについて
— 名島太樹 <h.najima@...>
2011/10/14
名島と申します。
[#48475] Re: net/https のproxy経由接続シーケンスについて
— KASUGA Toru (春日 玄) <kasuga.toru@...>
2011/10/16
名島様
[#48484] Windows で $0 へ代入すると刈り取られる — "5.5" <5.5@...>
5.5 です。
10 messages
2011/10/20
[#48485] Re: Windows で $0 へ代入すると刈り取られる
— Nobuyoshi Nakada <nobu@...>
2011/10/21
なかだです。
[#48486] Re: Windows で $0 へ代入すると刈り取られる
— "5.5" <5.5@...>
2011/10/21
5.5 です。
[#48496] IE9/Windows7(64bit)だとformをsubmitできない — 大縄亮 <onawa@...>
44Gv44GY44KB44G+44GX44Gm44CC5qCq5byP5Lya56S+44Oe44Kk44Os44O844K444OG44Kv44OO
7 messages
2011/10/25
[ruby-list:48439] Re: WEBrick
From:
牛坂 博則 <ushizaka.hironori@...>
Date:
2011-10-04 02:58:15 UTC
List:
ruby-list #48439
(2011/10/04 10:41), 牛坂 博則 wrote:
勘違いしてました。
--------------------------------------------------
すなわち、
File.join( document_root, *req.path.split( '/' ) )
は
( [ document_root ] + req.path.split( '/' ) ).join( File::SEPARATOR ) # (1)
と同じであり、また
File.join( document_root, req.path.split( '/' ) )
は
[ document_root, *req.path.split( '/' ) ].join( File::SEPARATOR ) # (2)
-------------------------------------------------------------
ですよね。
それにしても他の人も、同じ場所に疑問を持つものですね。
> [ruby-list:48432] を読みました。
> *を仮引数につけて配列をバラスのであれば、以下のように逆になるのでは。
> -----------------------------------------
> すなわち、
> File.join( document_root, req.path.split( '/' ) )
> は
> ( [ document_root ] + req.path.split( '/' ) ).join( File::SEPARATOR ) # (1)
> と同じであり、また
> File.join( document_root, *req.path.split( '/' ) )
> は
> [ document_root, req.path.split( '/' ) ].join( File::SEPARATOR ) # (2)
>
>
>
>
> (2011/10/03 21:48), Y. Nobuoka wrote:
>> 牛坂さん
>>
>>> 配列要素はreq.pathで持ってきて分割しているので、*はつ けなくてもよい
>>> というこですね。
>> 配列要素を req.path で持ってきて分割しているから * を付けなくても良い、と
>> いうとちょっと違うように思います。
>> きしもとさんが、[ruby-list:48432] において実引数の変数名の前に * を付ける
>> 意味を解説されていますので、今回の場合に * を付けても付けなくても
>> 良い理由を以下に述べておきます。
>>
>> 今回使用している File#join メソッドですが、[1] をみるとわかるように
>> item.join( File::SEPARATOR )
>> と同じ動きをするようです。 (item は仮引数として受け取ったパラメータの配列)
>> すなわち、
>> File.join( document_root, *req.path.split( '/' ) )
>> は
>> ( [ document_root ] + req.path.split( '/' ) ).join( File::SEPARATOR ) # (1)
>> と同じであり、また
>> File.join( document_root, req.path.split( '/' ) )
>> は
>> [ document_root, req.path.split( '/' ) ].join( File::SEPARATOR ) # (2)
>> と同じ動きになります。
>> そして、Array#join メソッドは 『要素がまた配列であれば再帰的に (同じ sep を利用して)
>> join した文字列を連結』 する [2] ものなので、(1) の式も (2) の式も結果としては
>> 同じ文字列を返します。
>> よって今回の場合は * があってもなくても同じ動きになります。
>> 一般的なメソッドの場合は、* の有る無しに意味がありますのでご注意ください。
>>
>> [1] http://doc.okkez.net/static/192/class/File.html
>> [2] http://www.ruby-lang.org/ja/old-man/html/Array.html#join
>>
>
--
//////☆
////★
//☆ 牛坂 博則
★