Lua學習筆記(4)

 今天繼續第三章的學習:web

3. Expressions
 
1)算數運算符: +     -     *     /     ^(冪)

2)關係運算符:  >     <     >=     <=     ==     ~=(不等於)
     對於tables, userdata, functions 只有二者表示的對象相等,他們相等(就像c中的指針指向同一個位置,這兩個指針比較時才相等)如:
a = {}; a.x = 1; a.y = 0;
b = {}; b.x = 1; b.y = 0
c = a
則 c == a 但 a ~=b

另,不一樣類型的變量儘可能不要拿來比較,容易引發錯誤。

3)邏輯運算符: and     or     not
  lua 中的 邏輯運算符含義和c等語言中的差異比較大:
  a  and  b     --若是a 爲false, 則返回a,不然返回b       (4 and 5  --> 5)
  a  or    b     --若是a爲true,則返回a,不然返回b          (4 or 5 --> 4)
  not a          --若是a爲true,則返回false,不然返回true (not 0 -->false)

另,lua中只有nil和false的邏輯值爲false,其餘值都爲true

c語言中的 a?b:c, 在Lua中能夠表示爲 (a and b) or c

4)鏈接運算符:
     .. 用於鏈接兩個字符串 ("ab".."cd" -->  "abcd")

5)優先級:
     a)  ^
     b) not     -(unary)
     c) *     /
     d) +     -
     e) ..
     f) <     >     <=     >=     ~=     ==
     g) and
     h) or

6)table的結構
    day = {1,2,3,4,5,6}     --> day[1] = 1; day[2] = 2;  ........; day[6] = 6
    注意,在默認狀況下,table的index值是從1開始,而不像c中從0開始

     table也能夠本身設定Index的內容,數字字符串皆可
     day = {["x"] = 1, ["y"] = 2, 3,4,5}    --> day.x = 1; day.y = 2; day[1] = 3; day[2] = 4; day[3] = 5 
     注意,在沒有明確指出Index的值(上例中的3,4,5),他們的Index編號也從1開始順序標記,和特定指的Index(上例中的想,y)沒有關係。
相關文章
相關標籤/搜索