提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文檔
Lua語言中的字符串是不可變值( immutable value)。我們不能像在C語言中那樣直接改變某個字符串中的某個字符,但是我們可以通過創建一個新字符串的方式來達到修改的目的,例如:
該操作符返回字符串佔用的字節數,在某些編碼中,這個值可能與字符串中字符的個數不同。
我們可以使用連接操作符…(兩個點)來進行字符串連接。如果操作數中存在數值,那麼Lua語言會先把數值轉換成字符串:
在某些語言中,字符串連接使用的是加號,但實際上3+5和3…5是不一樣的。應該注意,在Lua語言中,字符串是不可變量。字符串連接總是創建一個新字符串,而不會改變原來作爲操作數的字符串:
Lua語言在運行時提供了數值與字符串之間的自動轉換( conversion)。針對字符串的所有算術操作會嘗試將字符串轉換爲數值。Lua語言不僅僅在算術操作時進行這種強制類型轉換( coercion),還會在任何需要數值的情況下進行,例如函數math.sin的參數。相反,當Lua語言發現在需要字符串的地方出現了數值時,它就會把數值轉換爲字符串:
任何有字符串參與的數學運算,字符串都會被轉換爲浮點數
如果需要顯式地將一個字符串轉換成數值,那麼可以使用函數tonumber。當這個字符串的內容不能表示爲有效數字時該函數返回nil;否則,該函數就按照Lua語法掃描器的規則返回對應的整型值或浮點類型值:
調用函數tostring可以將數值轉換成字符串: