首页 > 其他分享 >Lua 语法之函数

Lua 语法之函数

时间:2024-07-25 21:53:11浏览次数:8  
标签:function F3 end 函数 -- 语法 Lua print

函数的定义

--函数的定义
function 函数名()
end

a =function()
end

无参数无返回值函数

function  F1()
	print("F1函数")
end
-- Lua 执行 是自上往下 执行 函数不同于变量 ,
--执行函数时必须先定义且在执行函数上面有定义
F1()

--有点类似 C# 中的委托和事件 写法

F2 =function()
	print("F2函数")
end

F2()

有参数函数

function  F3( a )
	print("参数:" , a)
	-- body
end

F3 (1);

F3 ("123");

F3 (true);

-- 如果你传入从参数 和函数参数个数不匹配

--不会报错 只会补空 或者 丢弃

F3 ();

F3( 1,2,3 )

有返回值函数

function F4(a)
	-- body
	return a,"123",true
end

--多返回值时 在前面申明多个变量来接取即可
--如果变量不够 不影响 值接取对应位置的返回值
--如果变量多了 不影响 直接赋nil 空类型

temp,temp2,temp3 =F4("1")

print(temp)

print(temp2)

print(temp3)

函数的类型

函数类型 就是 function
F5=function()
   print("123")
end
print(type (F5))

函数的重载

函数名相同 参数类型不同 或者参数个数不同
Lua 中函数不支持重载 默认调用最后一个申明的函数
 function F6()
   print ("洛溪帅气")
 end

 function F6(str)
   print (str)
 end
F6()

变长参数

... 再函数里代表着 任意数量的参数
{...} 表存储数据
function F7( ... )
	arg = {...}
	for i=1,#arg do
		print(arg[i])
	end
end

F7(1,"洛溪",3,true,5,6,7);

函数嵌套

function F8()
	return function ()
		print(123);
	end
end

f9=F8()
f9()
闭包简单体现
function F9( x )
	--改变了传入参数的生命周期
	return function(y)
		return x+y;
	end
	-- body
end

F10 =F9( 20 )

print(F10(10))

标签:function,F3,end,函数,--,语法,Lua,print
From: https://www.cnblogs.com/Luo-Xi/p/18324164

相关文章

  • C# —— 析构函数
    构造函数创建对象对属性进行初始化的作用析构函数:当一个对象被释放的时候执行析构函数的特点:一个类只能有一个析构函数。无法继承或重载析构函数。无法调用析构函数。它们是被自动调用的。析构函数既没有修饰符,也没有参数。语法 ~方法名(){        语法;}......
  • Python知识点—math函数,方法全解,细致易懂
    代码中已标明函数的方法以及操作importmathformathsindir(math):ifnotmaths.startswith("__"):#打印math函数的方法,不显示以"__"开头的print(maths)print(math.pi)#π值3.141592653589793#无穷大print(math.inf>99999999999999999999999......
  • 01、基础语法
    基础语法01、Python基础信息  02、Python保留字符保留字符的查看(共36个)importkeyword#获取所有的Python保留字reserved_words=keyword.kwlistprint(reserved_words)FalseNoneTrue__peg_parser__andasassertasyncawaitbreakclasscontinuedef......
  • Java SE核心技术——2 Java基础语法
    一、关键字和保留字1.关键字关键字的定义和特点定义:被[java语言]赋予了特殊含义,用作专门用途的字符串。特点:关键字中所有字母都为小写。关键字不能用作变量名,方法名,类名,包名和参数。2.保留字定义:现在java尚未使用,但以后版本可能会作为关键字使用。自己使用时应避免使用。-......
  • Java基础语法
    变量一、定义变量就是在程序运行过程中其值会发生改变的量。变量就是一个可以存储数据的容器。在Java语言中,所有的变量在使用前必须声明。变量存储在内存中开辟的存储空间中,根据数据类型的不同,存储空间的大小也会有所不同。变量的使用......
  • Markdown语法
    标题一级标题:井号+空格+标题名代码:#markdown语法二级标题:两个井号+空格+标题名代码:##markdown语法三级标题:三个井号+空格+标题名代码:###markdown语法以此类推,最小可到六级标题。字体粗体:两个星号+内容+两个星号Hello,world!代码:**Hello,world!**斜体:......
  • Python 高阶语法
    前言:我们通过上篇文章学习了Python的基础语法,接下来我们来学习Python的高阶语法1.初识对象在Python中我们可以做到和生活中那样,设计表格、生产表格、填写表格的组织形式的面向对象包含3大主要特性:封装继承多态(内容靠后)1.1使用对象组织数据在程序中设计表格,我们......
  • switch分支结构(基础语法)
    语法:switch(表达式){case常量1:语句块1;break;case常量2;语句块2;break;.......//可重复多个default:default语句块;break;}注:switch的case中一个判断正确则跳过后面的case(没有缺少break),以运行switch以后的代码。case全部不对应则执行default语句。案例练习要求:用......
  • 嵌入式学习--DAY10:函数的调用
    一、函数参数和函数的值1.在定义函数中指定的形参,在未出现函数调用时,它们并不占用内存中的存储单元,只有在发生函数调用时,函数中的形参才会被分配内存单元。在调用结束后,形参所占的内存单元也会被释放。2.实参可以是常量、变量或表达式。在被定义的函数中,必须指定形参的类型,实......
  • C语言:字符串函数、内存函数剖析
    字符串函数、内存函数剖析一、字符串函数(一)求字符串长度1、strlen(1)库函数实现(2)自定义实现(二)长度不受限制的字符串函数1、strcpy(1)库函数实现(2)自定义实现2、strcat(1)库函数实现(2)自定义实现3、strcmp(1)库函数实现(2)自定义实现(三)长度受限制的字符串函数介绍1、strncpy2、s......