Lua教程

Lua极简入门(六)——函数定义

2019-10-23  本文已影响0人  李小磊_0867

对于Lua,定义个函数,非常简单。只需要使用function语句,接下来需要明确函数名、括号,参数列表,最后以end结尾,并在括号end之间编写代码块,即可完成一个函数的定义。当有返回值时,采用return语句;和其他语言类似,也可以使用return结束一个函数的执行。下述为函数定义样例。

function funName(paramsList...)
    <代码块>
end

对于Lua中,如果在某些地方要提前结束函数执行,也是使用return,但稍微有些区别,确切的说是使用do return end语句:

function show(t)
    print("hello")
    if t == 1 then
        do return end
    end
    print("lua")
    return
end

show(2)
-->> hello
-->> lua
show(1)
-->> hello

上面的return其实是包含在了一个do...end代码块中,这种结构的代码块可以包含任意行代码,其也有作用范围,和普通的单行代码不同,包围在该块内的代码,会在end结束后,统一执行。

function test(a)
    ret = 1
    do
        local x = 2 * a
        local y = 4 * a + 10
        b = x + y
    end
    ret = b * 2
    print(x, y, b)  -- x,y属于do end中的本地变量,结束后,将不会存在, b非本地变量,可以使用
    return ret
end

print(test(2))
-->> nil nil 22
-->> 44

当将一个函数保存为文件后,如,将一个add函数(实现两个数值相加)保存为hello.lua,在交互控制台使用该方法,操作如下:

function add(a, b)
    return a + b
end
print("hello lua")
-- 上述函数保存为hello.lua
-->> dofile([[c:/Program Files/lua/hello.lua]])
-->> hello lua
-->> add(1,2)
-->> 3

dofile 加载程序库函数,可以载入其他Lua程序,使得在当前窗口可用;同时dofile会执行载入的Lua文件。

loadfile 只编译,不运行。该函数只会载入指定的文件,编译代码,但不会执行。

上一篇 下一篇

猜你喜欢

热点阅读