• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua中函数的几个特别之处探究

Lua中函数的几个特别之处探究

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了Lua中table的几种构造方式详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

没想到距离上一篇基础补充已经过了1年多了,最近准备捡回Lua,把基础都补补,今天来聊聊Lua的函数吧~

0.环境

我突然对Lua又大感兴趣的最主要原因是,Cocos Code IDE开始浮出水面了,它是Cocos2d-x官方出的一款专门针对Cocos2d-x+Lua或JS的IDE,试着用了,虽然不能说很完美,但,很值得期待。

所以,本文使用的Lua编辑器就选它了,大家就随意吧~

1.扫盲——Lua的函数

Lua要创建和调用函数都十分简单,如代码:
function mutou()
print("这绝对不是广告:www.jb51.net");
end</div>
这就创建了一个函数了,调用函数也十分简单:
mutou();
</div>
然后运行,就能看到输出了,print也是一个函数,唉,不多唠叨了。

2.扫盲——函数的参数

刚刚的mutou函数,我们修改一下参数,如代码:
function mutou(name, age)
print(name);
print(age);
end
</div>

我们给mutou添加两个参数,一个是name,代表名字,一个是age,代表年龄。
顺便一提,Lua是没有变量类型这一说法的,变量会根据赋予的值而展现出不一样的类型。
 
我们试试这样调用mutou函数:
mutou("木头", 25);
</div>
然后运行,输出如下:
[LUA-print] 木头
[LUA-print] 25
</div>
很正常,我喜欢~

3.海量的心——函数参数个数自适应

Lua的函数心胸比较宽广,对于我们传递进去的参数,全部都会忍受,但,它会按照它的规则进行筛选。
 
继续刚刚那个mutou函数,我们试试这样调用:
mutou("木头");
</div>
少给了一个参数,但,这和C++或者Java等语言不一样,它不会造成编译错误,仍然可以正常运行。输出如下:
[LUA-print] 木头
[LUA-print] nil
</div>
对于缺少的参数,它会自动用nil来代替。
 
再然后,既然可以少给参数,那自然也可以多给参数了,试试这样调用:
mutou("木头", 25, "旁白", 45);
</div>
(小若:你才45岁!你全身细胞都是45岁!)
输出如下:
[LUA-print] 木头
[LUA-print] 25
</div>

结果自然是,多出参数会被舍去。
至于这是好事还是坏事,就看是谁使用了~

4.多重返回值

没错,Lua似乎把我们想要的能偷懒的所有事情都给想到了,并且给实现了。

Lua的函数支持返回多个值,继续修改mutou函数,如下:
function mutou(name, age)
return name, age;
end
</div>
把传进去的两个参数又给return回来了,试试这样调用:
local name = mutou("木头", 25);
print(name);
</div>
调用mutou函数,并且用一个变量保存返回值,输出结果为:
[LUA-print] 木头
</div>
 
因为我们只用了一个变量来保存返回值,所以即使函数返回了两个值,我们也只能获取到一个,要想获取到两个值,就十分简单了,如下:
local name, age = mutou("木头", 25);
print(name .. ":" .. age);
</div>
输入结果如下:
[LUA-print] 木头:25
</div>
又顺便一提,用符号“..”可以连接字符串,这里就不多说了~
 
返回值和参数一样,如果我们尝试用三个变量去获取函数返回值,也不会造成编译错误,如下:
local name, age, hehe = mutou("木头", 25);
print(name .. ":" .. age);
print(hehe);
</div>
输入如下:
[LUA-print] 木头:25
[LUA-print] nil
</div>

对于多出的变量,会赋予nil值,虽然这不会造成编译错误,但是也可能会造成运行时错误。

比如,用“..”符号去连接nil值,就会报错。

5.多重返回值的特点1——必须是表达式的最后一个元素

对于有多个返回值的函数,不一定所有情况下都能返回多个值。

先来看这样一种特别的情况,仍然是刚刚的mutou函数,我们这样调用:
local a, b, c = "first", mutou("木", 25);
print(a);
print(b);
print(c);
</div>
输出结果如下:
[LUA-print] first
[LUA-print] 木
[LUA-print] 25
</div>
没错,Lua的赋值语句是支持逗号表达式的(也

您可能想查找下面的文章:

相关文章

  • Lua教程(二十一):编写C函数的技巧
  • Lua返回一个Closures函数实例
  • 浅谈Lua语句
  • 用sysbench来测试MySQL的性能的教程
  • Lua学习笔记之函数、变长参数、closure(闭包)、select等
  • lua+love2d制作的2048游戏
  • Lua table简明总结
  • 安装Nginx+Lua开发环境
  • Lua之字符串格式化例子和常用格式化参数介绍
  • Lua中实现php的strpos()以及strrpos()函数

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 实例讲解Lua中pair和ipair的区别
    • Lua教程(十九):C调用Lua
    • Lua中的协同程序详解
    • Lua中if语句嵌套的使用教程
    • Lua中的string库(字符串函数库)总结
    • C调用lua函数需要考虑的问题
    • Lua入门学习笔记
    • Lua脚本语言入门笔记
    • Lua中函数与面向对象编程的基础知识整理
    • lua操作excel方法分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有