2009年02月26日

ハッシュの要素数

なでしこのマニュアルではハッシュの要素数は「要素数」と言う関数で取れることになっているのですが、少なくても最新版の1.518では取得できないようです。

去年の夏ぐらいの2chのスレで同様の内容が記述されていましたが、どうも「ハッシュのハッシュキー列挙の要素数」なら取れるという不思議仕様になっているようです。

さらにおかしいことに、配列の要素数専用の「配列要素数」関数では、普通にハッシュの要素数が取得できてしまいます(^^;

実際に以下のようなサンプルコードを作って動かしてみたところ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
っしゅとはハッシュ
「【ハッシュ場合】」表示
Aはっしゅ要素数
ハッシュ要素数         :{A}表示
Bはっしゅハッシュキー列挙要素数
ハッシュハッシュキー列挙要素数:{B}表示
Cはっしゅ配列要素数
ハッシュ配列要素数       :{C}表示
「」表示
っしゅ「あああ」「あああ」
「【ハッシュに一つだけキーある場合】」表示
Aはっしゅ要素数
ハッシュ要素数         :{A}表示
Bはっしゅハッシュキー列挙要素数
ハッシュハッシュキー列挙要素数:{B}表示
Cはっしゅ配列要素数
ハッシュ配列要素数       :{C}表示
「」表示
っしゅ「いいい」「いいい」
「【ハッシュに二つキーある場合】」表示
Aはっしゅ要素数
ハッシュ要素数         :{A}表示
Bはっしゅハッシュキー列挙要素数
ハッシュハッシュキー列挙要素数:{B}表示
Cはっしゅ配列要素数
ハッシュ配列要素数       :{C}表示
↓のような結果となりました。う〜ん謎・・・
【空のハッシュの場合】
ハッシュの要素数         :0
ハッシュのハッシュキー列挙の要素数:0
ハッシュの配列要素数       :0

【ハッシュに一つだけキーがある場合】
ハッシュの要素数         :0
ハッシュのハッシュキー列挙の要素数:1
ハッシュの配列要素数       :1

【ハッシュに二つのキーがある場合】
ハッシュの要素数         :0
ハッシュのハッシュキー列挙の要素数:2
ハッシュの配列要素数       :2
Posted by Takuchan at 2009年02月26日 23:56 | トラックバック(0)