精華區beta mud_sanc 關於我們 聯絡資訊
有三種運算-and、or、not: 除了用在 if...then...end 的判斷式裡,還能用來為參數賦值: 在 lua 裡, nil 和 false 都視為 false,其它都是 true 。 and:當第一個參數的運算結果為 nil 或 false ,會直接回傳第一個值; 結果為 ture ,才會運算第二個參數,屆時無論第二個參數結果為何,都 回傳第二個參數。 如: nil and 10 --> nil false and error() --> false false and nil --> false 10 and 20 --> 20 or:當第一個參數的運算結果為 true ,會直接回傳第一個值,結束運算, 結果為 nil 或 false ,才會運算第二個參數,屆時無論第二個參數結果 為何,都回傳第二個參數。 如: 10 or 20 --> 10 10 or error() --> 10 nil or "a" --> "a" false or nil --> nil not:一元運算,取反。當運算結果為 nil 或 false ,回傳 true;   為 true ,回傳 false 。 如: not a -->true not 1 -->false not 'a' -->false 利用上列特性,在為變數賦值時,如: if a == nil then a = 0 end 上例可以用not: if not a then a = 0 end 因為 a 尚未被賦值,內容是 nil ,用 not 運算得 true ,執行 a = 0。 更簡易的寫法: a = nil or 0 因為 a 尚未被賦值,內容是nil,用 or 運算得 false ,執行 a = 0。