Category:LSL 演算子

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

新しい版の LSL_Operators のページを置いておくためにページを改版しました。消さないで

現在の版は LSL_演算子 にあります。

演算子の優先順位 (演算順序)

優先順位は仮

記号 説明 結合順
()
[]
丸括弧(Parenthesis)
リスト・コンストラクタ
中から外
右から左
, コンマ 左から右[1]
++ -- インクリメント / デクリメント 右から左
(type)
~
!
-
型キャスト
ビット否定
論理否定
否定
右から左
/
%
*
|
^
除算
剰余
乗算
ビット単位 OR
ビット単位 XOR
右から左
+
-
加算/連結
減算
右から左
<< >> ビットシフト 左 / 右 右から左
< >
<= >=
より小さい / より大きい
以下/以上
右から左
== != 等しい/等しくない 右から左
& ビット単位 AND 右から左
^ ビット単位 XOR 右から左
| ビット単位 OR 右から左
&& || 論理積 / 論理和 右から左
=
+= -= /= %= *=
代入
加算代入 / 減算代入 / 除算代入 / 剰余代入 / 乗算代入
右から左[1]
  1. ^ コンマと代入演算子は特別なケースです。コンマは全ての演算子を左に進めます。 しかし、丸括弧や角括弧で括られた中では、順番通りに計算します。

<lsl>//-- example: float a; float b; float c;

string uExample( float x, float y ){

   return (string)x + " " + (string)y;

}

default{

   state_entry(){
       string vStrReport = "\n" + (string)(++a) + " " + (string)(++a); //-- first line reports "2.000000 1.000000"
       vStrReport += "\n" + (string)[++b, " ", ++b]; //-- second line reports "1.000000 2.000000"
       vStrReport += "\n" + uExample( ++c, ++c ); //-- third line reports "1.000000 2.000000"
       llOwnerSay( vStrReport );
   }

}</lsl> 代入演算子は、それより左にある演算子よりも常に優先順位は高くなります (but obey all precedences below above increment/decrement. <lsl>//-- example: integer a = 0;

default{

   state_entry(){
       llOwnerSay( (string)(++a + a *= ++a) ); //-- yields  "3" instead of "4"
   }

}</lsl>

右から左

  • Placeholder for commentary about the LSL compiler and LSO R2L implications.

This category currently contains no pages or media.