在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
string和其他对象一样,Lua自动进行内存分配和释放,一个string可以只包含一个字母也可以包含一本书,Lua可以高效的处理长字符串,1M的string在Lua中是很常见的。可以使用单引号或者双引号表示字符串。 1 a = "a line" 2 b = 'another line' 为了风格统一,最好使用一种,除非两种引号嵌套情况。对于字符串中含有引号的情况还可以使用转义符\来表示。Lua中的转义序列有: 1 \a bell 2 \b back space -- 后退 3 \f form feed -- 换页 4 \n newline -- 换行 5 \r carriage return -- 回车 6 \t horizontal tab -- 制表 7 \v vertical tab 8 \\ backslash -- "\" 9 \" double quote -- 双引号 10 \' single quote -- 单引号 11 \[ left square bracket -- 左中括号 12 \] right square bracket -- 右中括号 例子: > print("one line\nnext line\n\"in quotes\", 'in quotes'") one line next line "in quotes", 'in quotes' > print('a backslash inside quotes: \'\\\'') a backslash inside quotes: '\' > print("a simpler way: '\\'") a simpler way: '\'
还可以使用[[...]]表示字符串。这种形式的字符串可以包含多行也,可以嵌套且不会解释转义序列,如果第一个字符是换行符会被自动忽略掉。这种形式的字符串用来包含一段代码是非常方便的。 page = [[ <HTML> <HEAD> <TITLE>An HTML Page</TITLE> </HEAD> <BODY> Lua [[a text between double brackets]] </BODY> </HTML> ]] io.write(page) 运行时,Lua会自动在string和numbers之间自动进行类型转换,当一个字符串使用算术操作符时,string就会被转成数字。 1 print("10" + 1) --> 11 2 print("10 + 1") --> 10 + 1 3 print("-5.3e - 10" * "2") --> -1.06e-09 4 print("hello" + 1) -- ERROR (cannot convert "hello") 5 print(10 .. 20) --> 1020
..在Lua中是字符串连接符,当在一个数字后面写..时,必须加上空格以防止被解释错。 line = io.read() -- read a line n = tonumber(line) -- try to convert it to a number if n == nil then error(line .. " is not a valid number") else print(n*2) end 反之,可以调用tostring()将数字转成字符串,这种转换一直有效: print(tostring(10) == "10") --> true print(10 .. "" == "10") --> true
|
请发表评论