NULL KEY/ja: Difference between revisions
< NULL KEY
No edit summary |
No edit summary |
||
| Line 28: | Line 28: | ||
LSLではkeyが有効であるかを簡単に調べられます。条件文にkeyをそのまま入れるだけです。 | LSLではkeyが有効であるかを簡単に調べられます。条件文にkeyをそのまま入れるだけです。 | ||
すなわち <code>if(uuid != NULL_KEY)</code> とするのでなく <code>if(uuid)</code> とします。<code>if(uuid)</code> はkeyが有効である、すなわちNULL_KEYでない場合のみ{{LSLG/ja|TRUE}} | すなわち <code>if(uuid != NULL_KEY)</code> とするのでなく <code>if(uuid)</code> とします。<code>if(uuid)</code> はkeyが有効である、すなわちNULL_KEYでない場合のみ{{LSLG/ja|TRUE}}を返します。また、uuidの中身が""であってもFALSEを返しますので、有効かどうかを判定する方法としてはこちらのほうが優れています。(<code>if(uuid != NULL_KEY)</code>ではuuidが""のとき、TRUEを返します) | ||
|functions= | |functions= | ||
{{LSL DefineRow||{{LSLG/ja|llAvatarOnSitTarget}}|}} | {{LSL DefineRow||{{LSLG/ja|llAvatarOnSitTarget}}|}} | ||
Revision as of 02:28, 11 June 2009
| 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を返します。また、uuidの中身が""であってもFALSEを返しますので、有効かどうかを判定する方法としてはこちらのほうが優れています。(if(uuid != NULL_KEY)ではuuidが""のとき、TRUEを返します)