Lua 多返回值

Lua这门神奇的语言可以在函数里面返回多个值具体函数如下

function multi_return()
 return 2,"hellow world"
end
local a , b = multi_return();--多个都返回
print(a,b)

local m = multi_return();--默认返回第一个返回值
print(m)

unpack函数

local array_data ={1,2,3,4,5}
local _,_,a,b,_ = unpack(array_data)
--解开array_data里面的数据

类似于import引用或者 c#里面的using,lua引用脚本使用require

require("math_func")
require "math_func"
--脚本可以添加返回值
return "hellow world"
local hellow=require("math_func")
--多次require会装载一次 多次装载返回值跟第一次一样
--装载后即可直接调用函数

可以以表的形式返回类

-- local关键字修饰的函数只能在这个模块内部使用
local function _test_func( ... )
	print("_test_func")
	print(device.get_device_name())
end

function math_abs(value)
	if (value < 0) then 
		return -value
	end

	return value
end

function math_vec_length_2(vec)
	return vec.x * vec.x + vec.y * vec.y
end

-- 其他的功能函数......
print("math func loading#####")
_test_func()
--函数,会分为内部函数,和接口函数;
--为了方便我们的用户使用和管理
--模块的接口函数给他统一的导出来;

--做了一个表,把我们的接口函数设置到这个表里
local list = {
	abs = math_abs,
	lenth = math_vec_length_2,
	test_func = _test_func,
}
return list

--下面为调用逻辑
local math_func = require("math_func")
-- require的返回值到底是什么呢?
print(math_func)

--如果一个lua代码被require多次会发生什么样的事情;
--require只会装载执行lua代码一次,
--local ret =  require("math_func")
--多次require只会装载和执行一次lua脚本,但是第二次require的时候
--会发现前面已经装载过了,所以直接返回第一次装载的返回值;
-- print(ret)
--end

-- 怎么在其他的文件里面使用lua的函数呢?
local ret = math_abs(-4)
ret = math_vec_length_2({x = 3, y = 4})
print(ret)

ret = math_func.abs(-8) 
print(ret)

math_func.test_func()

module函数让类可以作为全局可以找到的模块

module("lessons", package.seeall) --声明后就内部函数可以作为全局使用只需引用一次
function getLessonName()
 return "math"
end
--外面调用
local name = device.get_device_name()
print(name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值