首页 > 其他分享 >9.lua中的函数

9.lua中的函数

时间:2024-04-12 21:35:25浏览次数:15  
标签:function end 函数 lua print return local

1.函数的基本形式

[]:表示可选
function f([参数列表])
  函数体
  [return a,b,c] //可以同时返回多个值
end

2.固定参数

function f(a,b)
	print(a,b)
end

f(1)
f(1,2)
f(1,2,3)

输出结果如下:
1	nil
1	2
1	2

3.可变参函数

function f(...)
	local a,b = ...
	print(a,b)
end

f(1)
f(1,2)
f(1,2,3)
输出结果如下:
1	nil
1	2
1	2

4.可返回多个值

Lua 中的函数一次可以返回多个值,但需要有多个变量来同时接收
function f()
	return 1,2,3,4
end

local a,b,c = f();
local a1,b1,c1,d1 = f();
local a2,b2,c2,d2,e2 = f();
print(a,b,c)
print(a1,b1,c1,d1)
print(a2,b2,c2,d2,e2)

输出结果如下:
1	2	3
1	2	3	4
1	2	3	4	nil

5.函数作为参数

Lua 的函数中,允许函数作为参数。而作为参数的函数,可以是已经定义好的普通函数,
也可以是匿名函数。
function sum(a,b)
	return a+b
end

function mul(a,b)
	return a*b
end

function test(a,b,fun)
	local a = fun(a,b)
	print(a)
end

test(1,2,sum)
test(1,2,mul)
test(1,2,function (a,b) return a-b end)
输出结果如下:
3
2
-1

标签:function,end,函数,lua,print,return,local
From: https://www.cnblogs.com/gom-linwei/p/18132037

相关文章

  • 8.lua运算符
    lua中的运算符算术运算符关系运算符逻辑运算符其他运算符假设A=10,B=201.算术运算符操作符描述示例+加法A+B输出结果30-减法A-B输出结果-10*乘法A*B输出结果200/除法5/2输出结果2.5%取余B%A输出结果0^乘幂A^2输出结果100-负......
  • 使用内置函数 (SQL Server) 验证、查询和更改 JSON 数据
    使用内置函数(SQLServer)验证、查询和更改JSON数据项目2023/09/0313个参与者反馈 本文内容此页上的示例JSON文本使用ISJSON函数验证JSON文本使用JSON_VALUE函数从JSON文本中提取值使用JSON_QUERY函数从JSON文本中提取对象或数组显示另外......
  • string类的成员函数size()的类型
    string类的成员函数size()的类型string类的成员函数size()的类型并非是int型,虽然其类型也是整型的一种,但不是int这就导致许多对应的库函数,在针对int型进行比较时,无法比较size()像是max函数:intMAX=0;stringa;cin>>a;MAX=max(MAX,a.size());//出错解决方法很简单:就是......
  • 8.函数
    【一】函数1)概念将某一块代码封装起来须先定义,在调用2)定义1.空函数#定义def函数名(): 代码体#调用函数名()2.函数参数函数的调用者向函数体传值的媒介#定义def函数名(参数): 代码体#调用函数名(变量)3.函数返回值函数结束后返回的结果函数的......
  • 1.Lua开发环境安装
    一.Linux源码安装1.Lua的官网为:https://www.lua.org/(找到download项下载源码)2.上传到Linux,并解压到/opt/apps下(sudotar-zxvflua-5.4.6.tar.gz-C/opt/apps/)3.进入到/opt/apps下的lua目录可以看到编译用的Makefile文件及源码目录src4.没有gcc的需先安装gcc(有......
  • C语言实现split函数
    #include<stdio.h>#include<string.h>voidmySplit(char*src,constchar*separator,chardest[][20],int*num){char*pPre=NULL;char*pNext=NULL;//记录分隔符数量intcount=0;//原字符串为空if(src==NULL||strle......
  • 模板函数使用类型推导时的bug
    templatestaticboolparse_a_value(T&val,Json::Valuejson_val){if(json_val.isNull())returnfalse;if(typeid(val)==typeid(int)||typeid(val)==typeid(int16_t)||typeid(val)==typeid(int8_t)||typeid(val)==typeid(int32_t)){......
  • C++陷阱—指定的返回类型的函数实际没有返回时会发生什么
    当一个string变量作为左值接收函数返回,当函数没有正确返回时,该string变量被如何构造?请看如下代码:#include<iostream>#include<string.h>usingnamespacestd;stringfoo(){if(0){return"youget";}}intmain(intargc,char**argv){......
  • JSON.parse() 方法中里面有函数,转化完成后是字符串问题
    要将JSON字符串中的函数还原回原来的函数对象,你可以使用JSON.parse()方法,并提供一个reviver函数来将字符串表示的函数重新转换为函数对象。以下是你可以使用的代码示例:varobj={"name":"Runoob","alexa":function(){return10000;},"site":"www.runoob.com"};//......
  • 阿里云函数计算 FC牵手通义灵码 ,打造智能编码新体验
    通义灵码自成功入职阿里云后,其智能编程助手的角色除了服务于阿里云内部几万开发者,如今进一步服务函数计算 FC 产品开发者。近日,通义灵码正式进驻函数计算 FC WebIDE,让使用函数计算产品的开发者在其熟悉的云端集成开发环境中,无需再次登录即可使用通义灵码的智能编程能力,实现开......