lua loadstring传递参数_lua学习之函数篇

本文详细介绍了 Lua 中的函数用法,包括函数的多种调用方式,如何处理多返回值,以及如何使用变长参数。特别讨论了函数的具名参数实现,通过将参数组织成 table 传递。还提到了 `unpack` 函数的使用和泛型调用的概念。
摘要由CSDN通过智能技术生成
45c0f9bba79c8019b958af64325bed1b.png

函数

  1. 函数是对语句和表达式进行抽象的主要机制

两种用法

  1. 一是可以完成特定的任务,一句函数调用被视为一条语句
  2. 二是以只用来计算并返回特定的结果,视为一句表达式
print("Hello, World")a = math.sin(3) + math.cos(10)print(os.date())​
  1. 无论哪种用法都需要将所有参数放到一对圆括号中
  2. 但如果参数是字面字符串或 table 构造式的话,可以放在括号中,也可以不放
  3. 即使在调用函数时没有参数,也必须有一个 () 空括号,如调用 os.date()
print "Hello, World" -- 等价于 print("Hello, World")print {1, 2, 3} -- 等价于 print({1, 2, 3})​function add(a)    local sum = 0    for i, v in ipairs(a) do       sum = sum + v     end    return sumendb = {1, 2, 3}add(b)
  1. function 是定义函数的关键字
  2. add 是函数名
  3. a 是函数的形式参数,是函数定义式参数列表中的参数
  4. add(b) 调用这个函数所传入的参数称为实际参数
  5. 调用函数的实际参数的个数可以与函数定义时的形式参数个数不同
  6. lua 会自动调整实参的数量,以匹配参数表的要求,这和多s重赋值类似
  7. 若实参少于形参,多余的形参被初始化为 nil
  8. 若实参多余形参,多余的实参被抛弃
  9. lua 程序既可以使用 以 lua 编写的函数,也可使用 C 语言编写的函数
function f(a, b)    return a or bendf(3) -- a = 3, b = nilf(3, 4) -- a = 3, b = 4f(3, 4, 5)  -- a = 3, b = 4 ,5 被丢弃了

定义一个全局的计数器

function intCount(n)    n = n or 1  -- 赋值一个默认值    count = count + 1end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值