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

Lua函数用法研究

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

junjie 通过本文主要向大家介绍了lua require的用法,lua 用法,lua中return的用法,lua中 的用法,lua table.insert用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在Lua 基本语法快速入门 中有涉及到函数的用法,但只是普通的应用,并没有深成次的研究一下,介于函数用的还是比较多的就专门做个专题研究一下~ 
 
一、函数、变量的用法

函数的定义用关键字function 。然后加函数名和变量。注意后面没有do。最后以end结束。

在函数中的变量默认是全局变量,但通常情况下函数中的变量都是在函数中有效的。所以要在声明的时候加上"local” 标明只在局部有效。
二、返回多个结果值

在Lua中的函数可以返回多个返回值。这与C等语言有很大的不同。因为从根本上讲Lua支持多赋值。

我猜测在内部运行时,多个返回值被封装到了一个table中。然后在赋值时再按顺序取出。
看这个示例:             

function max(a) 
 local mi = 1 
 local m = a[mi] 
 for i,val in ipairs(a) do  --其中i为顺序位置,val为相应的值 
  print("i= "..i.."val="..val) 
  if val >m then 
   mi = i 
   m = val 
  end 
 end 
 return m,mi 
end 
 
print(max({8,10,23,12,5})) 
</div>

   

这个函数的作用是返回一个数列中最大的值和下标。

在实际应用的过程中,在C中调用lua_pcall(L,0,2,0) 即可接受这两个返回值入栈,然后通过 lua_tonumber(L,-1) 和 lua_tonumber(L,-2)即可
三、可变参数

Lua 函数可以接受可变数目的参数,和 C 语言类似在函数参数列表中使用三点(...)表示函数有可变的参数。

Lua 将函数的参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域 n 表示参数的个数。

例如:
 

function myprint(...) 
 local printResult = ""  --如果不显式声明,程序会自动检查全局的变量,会找不到出错 
 print(arg.n) 
 for i,v in ipairs(arg) do 
  printResult = printResult..tostring(v)..'\t' 
 end 
 printResult=printResult..'\n' 
 return printResult 
end 
 
print(myprint(2,4,6,'2es')) 
</div>

</div>

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

  • Lua函数用法研究

相关文章

  • lua获取未来某时间点的时间戳解决方案
  • Lua性能优化技巧(三):关于表
  • Lua和Nginx结合使用的超级指南
  • Lua中获取table长度问题探讨
  • Lua中的迭代器浅析
  • Lua中实现面向对象的一种漂亮解决方案
  • Nginx+lua 实现调用.so文件
  • Lua教程之弱引用table
  • 举例讲解Lua中的Table数据结构
  • 详解Lua中repeat...until循环语句的使用方法

文章分类

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

最近更新的内容

    • Lua中__index和__newindex之间的沉默与合作
    • Lua中的元表(metatable)、元方法(metamethod)详解
    • Lua数据类型介绍
    • Lua中的函数精讲笔记
    • Lua基础教程之表(Table)学习笔记
    • Lua中获取utf8字符串长度的方法和自定义函数
    • Lua中的string库和强大的模式匹配学习笔记
    • Lua table类型学习笔记
    • Lua中让回调函数支持回调对象方法的解决方法
    • 简单讲解Lua中的垃圾回收机制

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

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