博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
05:function函数的用法
阅读量:6678 次
发布时间:2019-06-25

本文共 1388 字,大约阅读时间需要 4 分钟。

01:在 Lua 中,函数是被看作是"第一类值(First-Class Value)",函数可以存在变量里:

函数是一种数据类型

function sum(n)if n==1 then return 1 else return n*sum(n-1) endenda=sum(5)b=aprint(a)print(b)

函数做为数据类型传递

02:function 可以以匿名函数(anonymous function)的方式通过参数传递

function sum(table1,test)for k,v in pairs(table1) dotest(k,v)endendtable2={4,58,86,68,5}function test2(k,v)print(k..":"..v)endsum(table2,test2)--匿名函数sum(table2,function (k,v)  print(k..""..v)end)

Lua函数可以返回多个结果值,比如string.find,其返回匹配串"开始和结束的下标"(如果不存在匹配串返回nil)

a,b=string.find("www.runoob.com", "runoob")print(a,b)5        10

在return后列出要返回的值的列表即可返回多值

functionmaximum(a)localmi=1-- 最大值索引localm=a[mi]-- 最大值fori,valinipairs(a)doifval>mthen           mi=i           m=valendendreturnm,miendprint(maximum({8,10,23,12,5}))23     3

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

function add(...)s=0for k,v in pairs{...} dos=s+vend return s end sun=add(100,500,400)print(sun)1000

我们可以将可变参数赋值给一个变量

function add(...)result=0local table1 ={...}for k,v in pairs(table1) doresult=result+vendprint("平均值无为:",result/#table1)print("长度为:",#table1)endadd(4,5,8,9)平均值无为:6.5长度为:4

我们也可以通过 select("#",…) 来获取可变参数的数量

function average(...)   result = 0   local arg={...}   for i,v in ipairs(arg) do      result = result + v   end   print("总共传入 " .. select("#",...) .. " 个数")   return result/select("#",...)endprint("平均值为",average(10,5,3,4,5,6))总共传入 6 个数平均值为5.5
a=select("#",25,888,8)print(a)3

转载地址:http://knrxo.baihongyu.com/

你可能感兴趣的文章
关于Nagios Core
查看>>
python基本数据类型的介绍
查看>>
原生的js写Ajax请求
查看>>
CSS3中新增属性总结
查看>>
战略合作背后的秘密:VMware沦为AWS的渠道商?
查看>>
day1-接口测试_jmeter_postman
查看>>
Python 文件操作
查看>>
java 中的流程控制
查看>>
Ubuntu 安装 Docker
查看>>
Vue.js 插件开发详解
查看>>
python练习2
查看>>
nodejs中的 Cannot read property'text' of undefined 问题
查看>>
python 函数的定义
查看>>
袁帅:用科技技术助力效益转化 剖析当前会议互动中的移动互联网科技
查看>>
关于机器级二进制位移
查看>>
windows7 10 windows2008 windws2012 nfs客户端的安装
查看>>
Spring Cloud--Honghu Cloud分布式微服务云系统—System系统管理
查看>>
MySQL数据库源码包安装(5.7最新版本)
查看>>
CentOS 7 yum安装zabbix 设置中文界面
查看>>
Django1.11启动错误:Generator expression must be parent
查看>>