Difference between revisions of "NULL KEY/ja"
< NULL KEY
Jump to navigation
Jump to search
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Issues/SVC-5772}}{{LSL_Constant/string/ja}}{{LSL Constant/ja | ||
{{LSL_Constant/string/ja}}{{LSL Constant | |||
|name=NULL_KEY | |name=NULL_KEY | ||
|type=string | |type=string | ||
|value="00000000-0000-0000-0000-000000000000" | |value="00000000-0000-0000-0000-000000000000" | ||
|desc= | |desc=<span style="color:red;">'''NULL_KEY は {{LSLG/ja|string}} です。'''</span> しかし、 {{LSLG/ja|key}} として使う以外の用途はありません。 | ||
{{LSLG/ja|key}} として有効な形式に従っていますが、 key として {{LSLGC|条件文}} で評価すると、 {{LSLG/ja|FALSE}} と判定されます。 | |||
|examples= | |examples= | ||
< | <source lang="lsl2">integer isKey(key in) { | ||
if(in) return 2; | if(in) return 2; | ||
return (in == NULL_KEY); | return (in == NULL_KEY); | ||
}// | }////有効な key ならば 2 を、 NULL_KEY ならば 1 を返します。</source> | ||
<source lang="lsl2">// NULL_KEY 自体は key 型としてキャストされたときにだけ FALSE と評価されます。 | |||
default { | |||
state_entry() { | |||
if (NULL_KEY) { llOwnerSay("NULL_KEY is TRUE"); }// 正しい。 | |||
else { llOwnerSay("NULL_KEY is FALSE"); }// 間違い。 | |||
if ((key) NULL_KEY) { llOwnerSay("Casted NULL_KEY is TRUE"); }// 間違い。 | |||
else { llOwnerSay("Casted NULL_KEY is FALSE"); }// 正しい。 | |||
} | |||
}</source> | |||
|notes=ほとんどの状況では、 NULL_KEY を使う必要はありません。空文字列 ("") で間に合います。 NULL_KEY を習慣のように使うのは、避けたほうがよいでしょう。多くのアプリケーションで、 key を NULL_KEY と比較して、有効かどうかをチェックしていますが、これは良くないやり方です。 | |||
LSL では key 値の有効・無効を簡単に調べられます。条件文に key 値をそのまま入れるだけです。 | |||
すなわち <code>if(uuid != NULL_KEY)</code> とするのでなく <code>if(uuid)</code> とします。<code>if(uuid)</code> | すなわち <code>if(uuid != NULL_KEY)</code> とするのでなく <code>if(uuid)</code> とします。 <code>if(uuid)</code> は NULL でない有効な key であるときに {{LSLG/ja|TRUE}} が返ります。 | ||
|functions= | |functions= | ||
{{LSL DefineRow||{{LSLG/ja|llAvatarOnSitTarget}}|}} | {{LSL DefineRow||{{LSLG/ja|llAvatarOnSitTarget}}|}} |
Latest revision as of 13:37, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
関連記事
関数
• | llAvatarOnSitTarget | |||
• | llDetectedKey | |||
• | llGetNotecardLine | |||
• | llGetLandOwnerAt | |||
• | llGetPermissionsKey | |||
• | llGetTexture | |||
• | llListen |
イベント
• | attach |
サンプル
integer isKey(key in) {
if(in) return 2;
return (in == NULL_KEY);
}////有効な key ならば 2 を、 NULL_KEY ならば 1 を返します。
// NULL_KEY 自体は key 型としてキャストされたときにだけ FALSE と評価されます。
default {
state_entry() {
if (NULL_KEY) { llOwnerSay("NULL_KEY is TRUE"); }// 正しい。
else { llOwnerSay("NULL_KEY is FALSE"); }// 間違い。
if ((key) NULL_KEY) { llOwnerSay("Casted NULL_KEY is TRUE"); }// 間違い。
else { llOwnerSay("Casted NULL_KEY is FALSE"); }// 正しい。
}
}
注意事項
4 文字以上の文字列定数をコードの複数の箇所で使っているのであれば、それらをグローバル定数に格納すべきです。かなりのメモリ節約になります。これについての詳細説明とサンプルは LSL Constants vs Globals にあります。
ほとんどの状況では、 NULL_KEY を使う必要はありません。空文字列 ("") で間に合います。 NULL_KEY を習慣のように使うのは、避けたほうがよいでしょう。多くのアプリケーションで、 key を NULL_KEY と比較して、有効かどうかをチェックしていますが、これは良くないやり方です。
LSL では key 値の有効・無効を簡単に調べられます。条件文に key 値をそのまま入れるだけです。
すなわち if(uuid != NULL_KEY)
とするのでなく if(uuid)
とします。 if(uuid)
は NULL でない有効な key であるときに TRUE が返ります。