NULL KEY/ja

From Second Life Wiki
Jump to navigation Jump to search

解説

定数: string NULL_KEY = "00000000-0000-0000-0000-000000000000";

string 定数 NULL_KEY の値は "00000000-0000-0000-0000-000000000000" です。

NULL_KEY は string です。 しかし、 key として使う以外の用途はありません。

key として有効な形式に従っていますが、 key として 条件文 で評価すると、 FALSE と判定されます。

関連記事

関数

•  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 が返ります。

特記事項

全ての記事

~ JIRA で関連記事を検索
   NULL_KEY is no longer a NULL_KEY when passed to a function
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)