使用函数 |
创建函数 |
function关键字用于创建新的函数,可以将其存放在一个变量中,或直接调用。
例:
>hello = function()
>>print("Hello World!")
>>end
>hello()
运行结果:Hello World!
函数从function()处开始,end关键字处结束。
语法糖:
>function hello()
>>print("Hello World!")
>>end
局部函数 |
将函数赋值给局部变量,即为局部函数。可以防止其它插件调用此函数。
>local hello = function()
>>print("Hello World!")
>>end
语法糖:
>local function hello()
>>print("Hello World!")
>>end
函数的参数与返回值 |
当调用一个函数时,它可以接收任意多个参数供其使用。在它完成时,可以返回任意多个值。
将摄氏温度转化为华氏温度:
>convert_c2f = function(celsius)
>>local converted = (celsius * 1.8) + 32
>>return converted
>>end
>print(convert_c2f(10))
运行结果:50
语法糖:
>function convert_c2f(celsius)
>>local converted = (celsius * 1.8) + 32
>>return converted
>>end
当有函数未传递参数时,默认值为nil,会报错。
函数的返回值不是必须的。
函数作为Lua值 |
在Lua中,每个函数只是一个简单的Lua值,它的类型是function。这些值可以被比较(使用”==”和”~=”)、绑定到变量名、传递给函数、从函数中返回或作为table中的关键字。能以这样的方式对待的Lua值被称为头等对象,而支持这种方式的函数被成为头等函数。
>hello = function()
>>print("Hello World!")
>>end
>print(hello == hello)
运行结果:true
>hello2 = hello
>print(hello2 == hello)
运行结果:true
>hello2 = function()
>>print("Hello World!")
>>end
>print(hello2 == hello)
运行结果:false
常用函数 |
print()
说明:输出
例:
print("Hello World!")
运行结果:Hello World!
type()
说明:确定参数类型,返回值为字符串。
例:
print(type(5))
运行结果:number
tostring()
说明:将任意参数转换为字符串。
foo = tostring(11)
print(type(foo))
运行结果:string
tonumber()
说明:获取一个值并把它转换成一个数,如果不能转换,返回nil。
foo = tonumber("123")
print(type(foo))
运行结果:number
string.len()
说明:获取字符串长度,相当于在字符串前加#号。
print(string.len("Hello"))
运行结果:5
print(#"Hello")
运行结果:5