NULL KEY/ja
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
関連記事
関数
• | llAvatarOnSitTarget | |||
• | llDetectedKey | |||
• | llGetNotecardLine | |||
• | llGetLandOwnerAt | |||
• | llGetPermissionsKey | |||
• | llGetTexture | |||
• | llListen |
イベント
• | attach |
サンプル
<lsl>integer isKey(key in) {
if(in) return 2; return (in == NULL_KEY);
}////有効な key ならば 2 を、 NULL_KEY ならば 1 を返します。</lsl> <lsl>// 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"); }// 正しい。 }
}</lsl>
注意事項
Like any LSO string constants longer then 3 characters and used in multiple places in the code, they should be stored in a global variable. The result will be a considerable memory savings. This does not apply to scripts compiled with Mono. See LSL Constants vs Globals for more information about this and examples.
ほとんどの状況では、 NULL_KEY を使う必要はありません。空文字列 ("") で間に合います。 NULL_KEY を習慣のように使うのは、避けたほうがよいでしょう。多くのアプリケーションで、 key を NULL_KEY と比較して、有効かどうかをチェックしていますが、これは良くないやり方です。
LSL では key 値の有効・無効を簡単に調べられます。条件文に key 値をそのまま入れるだけです。
すなわち if(uuid != NULL_KEY)
とするのでなく if(uuid)
とします。 if(uuid)
は NULL でない有効な key であるときに TRUE が返ります。