[#41531] [Bug #3385] ext/dbm: accept various version of db — Takahiro Kambe <redmine@...>

Bug #3385: ext/dbm: accept various version of db

10 messages 2010/06/03

[#41600] 質問・提案:cgi.rbの後継となるライブラリについて — Dice <tetradice@...>

Diceです。cgi.rbの後継ライブラリについて質問させてください。

16 messages 2010/06/13
[#41606] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Fujioka <fuj@...> 2010/06/14

藤岡です。

[#41607] Re: 質問・提案:cgi.rbの後継となるライブラリについて — KAKUTANI Shintaro <shintaro.kakutani@...> 2010/06/14

かくたにです。

[#41616] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Dice <tetradice@...> 2010/06/15

藤岡さん、かくたにさん、返信ありがとうございます。

[#41617] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Fujioka <fuj@...> 2010/06/16

藤岡です。

[#41656] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Dice <tetradice@...> 2010/06/20

Diceです。藤岡さん、返信ありがとうございます。

[#41623] [Feature:trunk] argument delegation — Nobuyoshi Nakada <nobu@...>

なかだです。

23 messages 2010/06/16
[#41625] Re: [Feature:trunk] argument delegation — Yusuke ENDOH <mame@...> 2010/06/16

遠藤です。

[#41627] Re: [Feature:trunk] argument delegation — Yukihiro Matsumoto <matz@...> 2010/06/16

まつもと ゆきひろです

[#41702] WIN32OLE_METHOD offset_vtbl — kuwamoto shintaro <beuniv@...>

こんばんわ

16 messages 2010/06/23
[#41712] Re: WIN32OLE_METHOD offset_vtbl — Masaki Suketa <masaki.suketa@...> 2010/06/24

助田です。

[ruby-dev:41760] Hash[] の引数が Array の場合の振る舞い

From: とみたまさひろ <tommy@...>
Date: 2010-06-28 15:28:41 UTC
List: ruby-dev #41760
とみたです。

Hash[] の引数が1つの配列で、かつその要素がさらに 1個か2個の要素の配列
の場合、それをキーと値のペアとみなして(1個の場合は値は nil)、Hash オブ
ジェクトを生成するようです。

ary = [[1,2],[3,4],[5]]
Hash[ary]    #=> {5=>nil, 1=>2, 3=>4}

1.8.7 でも 1.9.2 でも同様です。

マニュアル http://doc.okkez.net/static/187/class/Hash.html にはこの用法
は載っていませんでした。

というか、次の記述があったのですが、

| (4) キーや値が配列だと (2) や (3) の方法は使えないので地道に代入するしかない
| 
| h = Hash.new
| alist = [[1,["a"]], [2,["b"]], [3,["c"]]]
| alist.each {|k,v|
|   h[k] = v
| }
| p h
| 
| #=> {1=>["a"], 2=>["b"], 3=>["c"]}

今回みつけた方法を使うと、次のように簡単に Hash を作成できます。

alist = [[1,["a"]], [2,["b"]], [3,["c"]]]
Hash[alist]    #=> {1=>["a"], 2=>["b"], 3=>["c"]}

これがマニュアルに載ってないのは、単に漏れているだけでしょうか。それと
も何かの事情によりマニュアル未記載が選択されたのでしょうか。

Subversion で追ってみると、次の変更でこの機能が追加されたようです。

------------------------------------------------------------------------
r13803 | matz | 2007-11-02 15:30:26 +0900 (金, 02 11月 2007) | 8 lines

* array.c (rb_ary_assoc): check and convert inner arrays (assocs)
  using #to_ary.

* hash.c (rb_hash_s_create): check and convert argument hash
  using #to_hash.

* hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of
  hash conversion.
------------------------------------------------------------------------

-- 
とみたまさひろ <tommy@tmtm.org>
D68F 8F55 7F6C 5908 88EB  1EBA 25ED DEE7 BBE8 1752

In This Thread

Prev Next