Lua程式設計(三)

2021-09-01 12:40:35 字數 855 閱讀 8179

通過昨天用lua程式語言解決八皇后問題,我對於lua語言的程式編寫有了大致的了解。

今天開始了解lua的數值相關概念。在lua5.3中為數值格式提供了兩種選擇:一種為64位的integer型別,另一種則是雙精度的float型別。如果是資源受限的平台,如微控制器等我們可以使用精簡的32位數值格式。

lua5.3雖然給開發人員提供了整形型別轉換為浮點數型別的方法,但是開發人員應當保證程式設計規範的統一性:要麼忽略整型和浮點型別的不同,要麼完整地控制每乙個數值的表示。

lua針對整型除法引入了乙個新的運算子//floor, 該運算子將等到的商向負無窮取整。

標準的lua程式語言使用64個位元位來儲存整型值,其最大值為2^63-1. 數學庫中提供了整形的最大值和最小值的表示方法: math.maxinteger 和 math.mininteger. 如果我們使用了超出該範圍的整形值就會導致回環:即丟棄最高僅為。

math.maxinteger + 1 == math.mininteger --true

math.mininteger - 1 == math.maxinteger --true

-math.mininteger == math.mininteger --true

math.mininteger // 1 == math.mininteger -- true

通過與零進行按位或運算,可以把浮點值強制轉換為整形值。在轉換時, lua會檢測被轉換的浮點數是否與整型值完全一致,若該浮點數有小數部分且其值不在整形值的表述範圍內,就會丟擲異常。

另一種轉換方式則是使用 math.tointeger函式

表示式的運算子優先順序lua遵循傳統的數**演算法則,故不做贅述。

LUA物件導向程式設計(三)多型

先來了解一下多型的概念。在物件導向語言中,多型本質就是執行時繫結,比如有乙個父類baseclass,它有2個子類subclass1,subclass2。baseclass有乙個方法func 兩個子類都重寫了這個方法。那麼我們可以定義乙個baseclass的引用obj,讓它指向乙個子類的物件,比如ba...

Lua程式設計(四)

字串是用於表示文字的手段。lua語言提供的字串是由一串位元組組成的序列。每個字元用8個位元位來儲存。雖然lua支援用任意一種方法來儲存unicode字串,但是最好在一切可能的情況下優先使用utf 8編碼。需要注意的是lua中的字串是不可變值,不能直接修改字串中的某個字元,僅能通過建立乙個新的字串來達...

Lua程式設計(七)

函式是對語句和表示式進行抽象的主要方式,呼叫函式時應使用一堆圓括號把引數列表括起來,即使不需要引數,也需要一對空括號 lua語言也為物件導向風格的呼叫 object oriented call 提供了冒號操作符。形如 o foo x 意為呼叫物件o的foo方法。乙個函式定義具有乙個函式名 name ...