概述
lua多返回值与unpack
1: 一个lua函数可以返回多个返回值:
2: 定义多个变量来接受多返回值
3: lua的unpack函数,解开表里的单个的值;
-- 一个函数可以有多个返回值
function
mul_return_func()
return
3 ,
"Hello World"
--多返回值
end
local first, second =
mul_return_func()
--多返回值接收
print(first, second)
local first_2 =
mul_return_func()
--多返回值接收 只接受第一个参数返回值
print(first_2)
--unpack函数
local array_data = {
1,
2,
3,
4,
5,
6}
local _, _, _, lhs, rhs =
unpack(array_data);
-- _, 表示不用的变量表示,把表里面的数据拆开赋值
print(lhs,rhs)
print(
'---------------------------')
require 导入代码 module与package
1: 第一个代码是有lua虚拟机第一个解释执行的lua文件;
2: 第一个lua文件可以去包含和导入其他的lua文件;
使用require关键字来导入其他lua
3: require的时候就会装载lua文件,并执行lua代码;
require “./test” // 不用文件的后缀名;
require “文件夹/lua文件名”;
require “文件夹.lua文件名”;
4: lua 代码中的 return 语句:
require “lua代码” 执行的时候如果有return 语句,那么require就返回return的对象;
5: lua导出函数:
将lua代码要到处的函数,做成一个表,把这个表返回出去;
6: 如果在其他的地方使用又要装载一次;
7: 如果require过了的lua代码,直接返回返回值,不再装载代码并执行;
----math_func.lua
--------------------math_func.lua---------------------------------
-- local 关键字修饰的函数,只能在模块内部使用
local
function
_test_func(
value)
print(
"local test func")
end
local
function
math_abs(
value)
if (value <
0)
then
return -value
end
return value
end
local
function
math_vec_len(
vec)
return vec.
x * vec.
x + vec.
y * vec.
y
end
print(
"math func loading")
--函数分为内部函数 和 接口函数
-- 模块的接口函数 ,统一的导出来
local list = {
abs = math_abs,
len = math_vec_len,
}
return list
-- require导入代码
--lua虚拟机加载第一个lua脚本执行,代码不可能都写到一个脚本,
--把功能的相同的代码放到一起
--方便代码维护,叫做代码模块
--require 来加载我们的代码
-- require("math_func")
--require "math_func" --两种写法都可以
local math_func =
require(
"math_func")
require(
"math_func")
require(
"math_func")
-- 如果一个lua代码被require多次,也只会装载执行一次
local ret = math_func.
abs(-
100)
print(ret)
ret = math_func.
len({x =
3, y =
4})
print(ret)
-- end
--ret = _test_func(4)
require(
"device")
require(
"test")
1: 默认情况下lua代码编写的函数是不能被外部识别的;
2: 包: module(包名, package.seeall)
3: 外部 require 包名
require “包名”
4: 全局require模块后,其他的lua文件无需再去require了,方便使用;
-------------device.lua
--调用module函数,让他做成全局的可以找到的模块
--全局模块
module(
"device",package.
seeall)
function
get_device_name()
return
"guest5927"
end
----test.lua
require(
"math_func")
local name = device.
get_device_name()
print(name)
最后
以上就是无心信封为你收集整理的lua 多返回值 require 模块lua多返回值与unpackrequire 导入代码 module与package的全部内容,希望文章能够帮你解决lua 多返回值 require 模块lua多返回值与unpackrequire 导入代码 module与package所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复