NULL KEY/ja
< NULL KEY
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Caveats
Related Articles
Functions
| • | llAvatarOnSitTarget | |||
| • | llDetectedKey | |||
| • | llGetNotecardLine | |||
| • | llGetLandOwnerAt | |||
| • | llGetPermissionsKey | |||
| • | llGetTexture | |||
| • | llListen |
Events
| • | attach |
Examples
<lsl>integer isKey(key in) {
if(in) return 2; return (in == NULL_KEY);
}//有効なkeyならば2を、NULL_KEYならば1を、""ならば0を返します。</lsl>
<lsl>//上記ユーザー関数を使った結果のテスト default {
state_entry()
{
llOwnerSay((string)isKey(""));
llOwnerSay((string)isKey(NULL_KEY));
llOwnerSay((string)isKey("00000000-0000-0000-0000-000000000000"));
llOwnerSay((string)isKey(llGetOwner()));
}//上から順に、0,1,1,2を返します
}</lsl>
Notes
4 文字以上の文字列定数をコードの複数の箇所で使っているのであれば、それらをグローバル定数に格納すべきです。かなりのメモリ節約になります。これについての詳細説明とサンプルは LSL Constants vs Globals にあります。
大概の状況でNULL_KEYは不要です。空文字列 ("") で充分でしょう。(状況によっては)NULL_KEYの利用は避けられるべきです。多くのアプリケーションでkey値はNULL_KEYと比較されて有効/無効を判定されます。これは良くない慣習です。
LSLではkeyが有効であるかを簡単に調べられます。条件文にkeyをそのまま入れるだけです。
すなわち if(uuid != NULL_KEY) とするのでなく if(uuid) とします。if(uuid) はkeyが有効である、すなわちNULL_KEYでない場合のみTRUEを返します。
※さらに、if(uuid != NULL_KEY)と違って、uuidの中身が""であっても、FALSEを返しますので、有効かどうかを判定する方法としてはこちらのほうが優れています。