openresty开发系列13--lua基础语法2常用数据类型介绍
openresty開發系列13--lua基礎語法2常用數據類型介紹
一)boolean(布爾)
布爾類型,可選值 true/false;
Lua 中 nil 和 false 為"假",其它所有值均為"真"。比如 0 和空字符串就是"真";
local a = true
local b = 0
local c = nil
if a then
??? print("a")??????? -->output:a
else
??? print("not a")??? --這個沒有執行
end
if b then
??? print("b")??????? -->output:b
else
??? print("not b")??? --這個沒有執行
end
if c then
??? print("c")??????? --這個沒有執行
else
??? print("not c")??? -->output:not c
end
二)number(數字)
Number 類型用于表示實數,和 C/C++ 里面的 double 類型很類似??梢允褂脭祵W函數 math.floor(向下取整)和 math.ceil(向上取整)進行取整操作。
local count = 10
local order = 3.99
local score = 98.01
print(math.floor(order))?? -->output:3
print(math.ceil(score))??? -->output:99
三)string(字符串)
Lua 中有三種方式表示字符串:
1、使用一對匹配的單引號。例:'hello'。
2、使用一對匹配的雙引號。例:"abclua"。
local str1 = 'hello world'
local str2 = "hello lua"
print(str1)??? -->output:hello world
print(str2)??? -->output:hello lua
轉義字符
string =? hello\',\"\",\\n,\\t
3、字符串還可以用一種長括號(即[[ ]])括起來的方式定義。整個詞法分析過程將不受分行限制,不處理任何轉義符。
???? 在 Lua 實現中,Lua 字符串一般都會經歷一個"內化"(intern)的過程,即兩個完全一樣的 Lua 字符串在 Lua 虛擬機中只會存儲一份。每一個 Lua 字符串在創建時都會插入到 Lua 虛擬機內部的一個全局的哈希表中。
???? 另外,Lua 的字符串是不可改變的值,不能像在 c 語言中那樣直接修改字符串的某個字符,而是根據修改要求來創建一個新的字符串。Lua 也不能通過下標來訪問字符串的某個字符。
它支持一些轉義字 符,列表如下
\a? 響鈴 ?
\b? 退格 (back space) ?
\f? 提供表格(form feed) ?
\n? 換行(newline) ?
\r? 回車(carriage return) ?
\t? 水平tab(horizontal tab) ?
\v? 垂直tab(vertical tab) ?
\\? 反斜杠(backslash) ?
\"? 雙引號(double quote) ?
\'? 單引號(single quote)
定義:"add\name",'hello' 字符串
local str3 = [["add\name",'hello']]
print(str3)??? -->output:"add\name",'hello'
4、字符串連接使用的是 ..
> print("a" .. 'b')
ab
5、字符串與number類型轉換
print(tonumber("10") == 10)
print(tostring(10) == "10")
6、使用 # 來計算字符串的長度,放在字符串前面
print(#"this is string")
注意:string不可修改
local a= "this is a";
a = "this is new a ";
local b= "this is new a ";
1)在 Lua 實現中,Lua 字符串一般都會經歷一個"內化"(intern)的過程,即兩個完全一樣的 Lua 字符串在 Lua 虛擬機中只會存儲一份。每一個 Lua 字符串在創建時都會插入到 Lua 虛擬機內部的一個全局的哈希表中。
2)Lua 的字符串是不可改變的值,不能像在c語言中那樣直接修改字符串的某個字符,而是根據修改要求來創建一個新的字符串。Lua 也不能通過下標來訪問字符串的某個字符。
Lua的字符串和其它對象都是自動內存管理機制所管理的對象,不需要擔心字符串的內存分配和釋放
提供了效率,安全
s='123456789';
s1 = s;
s='abcdwff';
print(s);
print(s1);
--------------------
s='123456789'
local s1 = string.sub(s, 2, 5)
print(s)
轉載于:https://www.cnblogs.com/reblue520/p/11429699.html
總結
以上是生活随笔為你收集整理的openresty开发系列13--lua基础语法2常用数据类型介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openresty开发系列12--lua
- 下一篇: openresty开发系列14--lua