函数

作者: 爱折腾的傻小子 | 来源:发表于2021-01-05 16:51 被阅读0次

Lua 函数

  • 在Lua中,函数是对语句和表达式进行抽象的主要方法
  • Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上
  • Lua 函数主要有两种用途:
    • 完成指定的任务,这种情况下函数作为调用语句使用
    • 计算并返回值,这种情况下函数作为赋值语句的表达式使用
  • 函数定义
optional_function_scope function function_name(argument1, argument2, argument3..., argumentn)
  function_body
  return result_params_comma_separated
end
  • optional_function_scope
    • 该参数是可选的制定函数是全局函数还是局部函数,默认全局函数
    • 需要设置为局部函数使用关键字local
  • function_name 函数名称
  • argument1, argument2, argument3..., argumentn
    • 函数参数,多个参数以逗号隔开,函数也可以不带参数
  • function_body
    • 函数体,函数中需要执行的代码语句块
  • result_params_comma_separated
    • 函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开
-- 定义max函数 返回最大值
function max(max1, max2)
    if max1 > max2 then
        return max1
    else
        return max2
    end
end
print(max(8,9))  -- 9
print(max(8,8))  -- 8
print(max(8,7))  -- 8
-- 将函数作为参数传递给函数
myFunc = function(param)
    print("打印param:", param)
end

function add(num1, num2, func)
    func(num1 + num2)
end

myFunc(100)
add(4, 6, myFunc)
--[[
打印param:    100
打印param:    10
]]
  • 多返回值
-- string.find 其返回匹配串"开始和结束的下标"(如果不存在返回nil)
s, e = string.find("~~~ hello Lua!", "hello")
print(s, e) -- 5 9      5 开始位置 9 结束位置

ss, ee = string.find("~~~ hello Lua!", "hello1")
print(ss, ee)   -- nil nil
-- 获取table中的最大值即索引值
function maximum(a)
    local mi = 1    -- 最大索引
    local m = a[mi] -- 最大值
    for i, v in ipairs(a) do
        if v > m then
            mi = i
            m = v
        end
    end
    return m, mi
end

print(maximum({8,10,23,12,5}))  -- 23   3
  • 可变参数
  • Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(...) 表示函数有可变的参数
  • Lua将函数的参数放在一个叫arg的表中,#arg 表示传入参数的个数
-- 计算平均值
function average(...)
    result = 0
    local arg = {...}
    for i, v in ipairs(arg) do
        result = result + v
    end
    print("传入参数个数:", #arg)
    return result/#arg
end

print("平均值:", average(10,5,3,4,5,6))
--[[
传入参数个数: 6
平均值:    5.5
]]

相关文章

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

  • 积分表——不定期更新

    基本初等函数包括: 常函数: 幂函数 指数函数 对数函数 三角函数 反三角函数 I、反函数Ⅱ、复合函数:初等函数(...

  • MySQL基本使用

    函数 常用函数 数学函数 字符串函数 日期函数

网友评论

      本文标题:函数

      本文链接:https://www.haomeiwen.com/subject/zevhoktx.html