Lua程式設計(四)

2021-09-01 13:30:11 字數 1285 閱讀 1035

字串是用於表示文字的手段。lua語言提供的字串是由一串位元組組成的序列。每個字元用8個位元位來儲存。雖然lua支援用任意一種方法來儲存unicode字串,但是最好在一切可能的情況下優先使用utf-8編碼。、

需要注意的是lua中的字串是不可變值,不能直接修改字串中的某個字元,僅能通過建立乙個新的字串來達到目的。

a = "one string"

b = string.gsub(a, "one", "another")

print(a) --> one string

print(b) --> another string

字串可以通過..連線符做連線操作。lua語言提供了數值與字串之間的自動轉換。但如果想要顯示地將字串轉換為數值可以呼叫tonumber函式。同樣的tostring函式則可以將數值轉換成字串。需要注意的是,比較操作符不會進行強制型別轉換。

lua同時提供了乙個字串標準庫用作處理字串。string.sub(s, i, j)從字串s中提取到第i個字元到第j個字元。

string.char 和 string.byte用於轉換字元及其內部數值表示。

string.format則是提供了將字串格式化和將數值輸出為字串的強大工具

string.gsub把匹配的字串進行替換。

string.gsub("hello world", "l", ".") --he..o wor.d 3

string.gsub("hello world", "ll", "..") --he..o world 1

string.gsub("hello world", "a", ".") --hello world 0

utf-8是web環境中用於unicode的主要編碼之一,它使用變長的多個位元組來編碼乙個unicode字元。具體來說, utf-8使用乙個位元組表示所有ascii字元,對於其他位元組則用位元組序列表示.

字串標準庫為我們提供了處理utf-8字串的能力。 針對乙個字元的標準庫函式將不再適用。

string.len和string.sub都可以正常使用

utf8.char 和 utf8.codepoint模擬於 string.char 和 string.byte.

utf8標準庫有乙個函式utf8.codes, 該函式可用於遍歷utf-8字串中的每乙個字元

for i, c in utf8.codes("utf-8字串") do

print(i,c)

end

Lua程式設計(四)物件導向類繼承

1.類繼承 sharp 父類 function sharp new local new sharp self.index self self sharp setmetatable new sharp,self return new sharp endfunction sharp sharp func...

Lua程式設計(三)

通過昨天用lua程式語言解決八皇后問題,我對於lua語言的程式編寫有了大致的了解。今天開始了解lua的數值相關概念。在lua5.3中為數值格式提供了兩種選擇 一種為64位的integer型別,另一種則是雙精度的float型別。如果是資源受限的平台,如微控制器等我們可以使用精簡的32位數值格式。lua...

Lua程式設計(七)

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