ハッシュ操作†

6 個の関数。

IHASH†

書式†

IHASH( [key1, value1, key2, value2, ...] )

引数†

Parameter Description
keyn キー
valuen keyn に対応する値

戻り値†

ハッシュ。引数が無ければ空のハッシュ。

解説†

キーと値を交互に並べてハッシュを作る。

キーの一致と並び順の規則は ハッシュ を参照。

使用例†

_h = IHASH("name", "さくら", "age", 16)
_h["name"]              // "さくら"

_e = IHASH()            // 空のハッシュ
_e["k"] = (1, 2, 3)     // 値に配列を入れる

IHASH(9, "i9", "9", "s9")   // 9 と "9" は同じキーなので 9=i9 だけ

互換性†

関連項目†


HASH_KEYS†

書式†

HASH_KEYS( hash )

引数†

Parameter Description
hash ハッシュ

戻り値†

キーの汎用配列。キーの順に並ぶ。

解説†

ハッシュのキーを汎用配列で返す。並びは挿入した順ではなく、キーの順(数値 < 文字列)になる。

引数がハッシュでないときは警告 W0009 を出す。

使用例†

_h = IHASH("b", 1, "a", 2, 10, 3, 9, 4)
HASH_KEYS(_h)   // 9,10,a,b

互換性†

関連項目†


HASH_VALUES†

書式†

HASH_VALUES( hash )

引数†

Parameter Description
hash ハッシュ

戻り値†

値の汎用配列。キーの順に並ぶ。

解説†

ハッシュの値を汎用配列で返す。並びは HASH_KEYS と同じキーの順になる。

値が配列のときは、その配列を1つの要素として含む(入れ子の配列になる)。そのため、戻り値の要素数はハッシュの要素数と同じになる。

引数がハッシュでないときは警告 W0009 を出す。

使用例†

_h = IHASH("a", 1)
_h["b"] = (1, 2)
_v = HASH_VALUES(_h)
ARRAYSIZE(_v)   // 2
_v[1]           // 配列 (1,2)
TOSTR(_v)       // "1,1,2"

互換性†

関連項目†


HASH_SPLIT†

書式†

HASH_SPLIT( str, sep1, sep2 )

引数†

Parameter Description
str 分割する文字列
sep1 要素の区切り
sep2 キーと値の区切り

戻り値†

ハッシュ

解説†

文字列を sep1 で要素に分け、各要素を sep2 でキーと値に分けてハッシュを作る。

使用例†

_h = HASH_SPLIT("a=1,b=2,,c,=x,d=4=5", ",", "=")
// a=1,b=2,c=,d=4=5 (要素数 4)

互換性†

関連項目†


HASH_EXIST†

書式†

HASH_EXIST( key, hash )

引数†

Parameter Description
key 調べるキー
hash ハッシュ

戻り値†

解説†

ハッシュにキーがあるかどうかを返す。引数の順はキー、ハッシュの順(ASEARCH と同じ)なので注意。

h[キー] はキーが無いと VOID を返す(Tc602-13 までは空文字列)が、値そのものが VOID や空文字列のこともあるので、「キーが無い」ことを確かめたいときはこの関数を使う。

キーの一致は ハッシュのキーの規則 に従う。key が配列やハッシュのときは警告 W0009 を出す。

使用例†

_h = IHASH("a", "", 1, "x")
HASH_EXIST("a", _h)   // 1
HASH_EXIST("b", _h)   // 0
HASH_EXIST("1", _h)   // 1 (1 と "1" は同じキー)

互換性†

関連項目†


HASH_SIZE†

書式†

HASH_SIZE( hash )

引数†

Parameter Description
hash ハッシュ

戻り値†

要素数(整数)

解説†

ハッシュの要素数を返す。

引数がハッシュでないときは警告 W0009 を出す。

使用例†

_h = IHASH("a", 1, "b", 2)
HASH_SIZE(_h)   // 2

互換性†

関連項目†