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)

你可能感兴趣的:(lua,junit,开发语言)