玖叶教程网

前端编程开发入门

「nginx」十八、nginx高阶之lua基本语法

一)注释

单行注释

两个减号是单行注释: --注释内容

多行注释

--[[

多行注释

多行注释

--]]

二)基本类型

Lua中有8个基本类型分别为:

nil(空) -----> java null(空)

boolean(布尔)、

number(数字) 双精度浮点数 ---> java int double float

string(字符串)

table(表) ----> 类似 java map

function(函数)、

userdata(自定义的类型)、

thread(线程/协程)

使用type函数测试给定变量或者值的类型

三)变量

1)变量命名

大小写区分命名规则

Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。

_temp

一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。

关键词:

and break do else

else if end false true for

function if in local

nil not or

return then repeat until

while

变量名字,它的大小写是相关的。也就是说,A和a是两个不同的变量

定义一个变量的方法就是赋值。"="操作就是用来赋值的。

2)全局变量

在默认情况下,变量总是认为是全局的。除非,你在前面加上"local"。这一点要特别注意,因为你可能想在函数里使用局部变量,却忘了用local来说明.

全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。

> print(b)

nil

> b=10

> print(b)

10

>

如果你想删除一个全局变量,只需要将变量赋值为nil。

b = nil

print(b) --> nil

这样变量b就好像从没被使用过一样。换句话说, 当且仅当一个变量不等于nil时,这个变量即存在。

3)局部变量

变量名称 前加修饰符 local

四)nil类型

> print(type(a))

nil

对于全局变量和 table,nil 还有一个"删除"作用,给全局变量或者 table 表里的变量赋一个 nil 值,等同于把它们删掉,执行下面代码就知:

tab1 = { key1 = "val1", key2 = "val2" }

for k, v in pairs(tab1) do

print(k .. " - " .. v)

end

print('---------')

tab1.key1 = nil

for k, v in pairs(tab1) do

print(k .. " - " .. v)

end

判断nil类型 作比较时应该加上双引号 ":

type(X) ---> 返回的类型 其实是string

> type(X)==nil

false

> type(X)=="nil"

true

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言