*Luaで良く作る関数 ~table編~ [#x86ba688]

-[[table.empty>#table_empty]]
-[[table.elemn>#table_elemn]]
-[[table.in_key>#table_in_key]]
-[[table.in_value>#table_in_value]]
-[[table.map>#table_map]]

&aname(table_empty);
**table.empty [#v0d29c8d]
#sh(lua){{
-- テーブルが空かどうかの判定
-- 引数にnilを渡しても「空」とみなす。
function table.empty(tbl)
	if tbl==nil then return true end
	return not next (tbl)
end
}}

&aname(table_elemn);
**table.elemn [#p6fb257c]
#sh(lua){{
-- テーブルに実際に存在する要素数(=num of elements)
-- 「#」や「table.getn」「table.maxn」ではテーブルの要素数は調べられないので必要となる。
function table.elemn(tbl)
	local n = 0
	for _ in pairs (tbl) do
		n = n + 1
	end
	return n
end
}}



&aname(table_in_key);
**table.in_key [#qe875447]
#sh(lua){{
-- 対象のテーブルのキーに、指定のkeyが存在するかどうか。
function table.in_key (tbl, key)
	for k, v in pairs (tbl) do
		if k==key then return true end
	end
	return false
end
}}


&aname(table_in_value);
**table.in_value [#zc99510e]
#sh(lua){{
-- 対象のテーブルの値に、指定のvalが存在するかどうか。
function table.in_value (tbl, val)
	for k, v in pairs (tbl) do
		if v==val then return true end
	end
	return false
end
}}


&aname(table_map);
**table.map [#vf1c03dc]
#sh(lua){{
-- 対象のテーブルの各要素に対して、func(key, value)を実行し、関数実行結果を格納する。
-- 元のテーブルの値は変化せず、新たなテーブルが返される。
function table.map(tbl, func)
	local ret_tbl = {}
	for k, v in pairs (tbl) do
		ret_tbl[k] = func (k, v)
	end
	return ret_tbl
end
}}


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS