• lua 可变参数


    问题:对可变参数传递的时候,采用如下方案:

    local cellData

    =

    {
    MsgText = msgText
    ,
    Param = ...
    ,
    CallBackFunc = callBackFunc
    ,
    CallBackContext = callBackContext
    ,
    Index = newIndex
    ,
    }

    这里面其实Param只传递看一个参数, 大致总结一下可变参数的使用:

    (1)...,标记为变长参数,lua在解析的时候会将相关参数保存在局部变量中

    (2)select()函数可以遍历其中的参数

    function printargs(...)
    local num_args = select("#", ...
    )
    for i = 1, num_args
    do
    local arg = select(i, ...
    )
    print(i,
    arg)
    end
    end

    (3)使用

    local t = { ... }将参数转换为table

    (4)函数中

    -- 

    可以
    print("1", ...
    )
    --
    被调整为一个参数
    print(..., "1"

    )

    如果想把可变参数放在前面,需要特殊处理,一种方式就是讲后面的参数和前面的参数一起重新打包

    function append(...)
    local t = { ... }
    table.insert(t, x)
    -- 将key为数字的转换为数组
    return unpack(t)
    end
     
  • 相关阅读:
    Spring IoC和AOP使用扩展(二)
    Spring核心概念(一)
    MyBatis的动态SQL(五)
    MyBatis的SQL映射文件(四)
    初始myBatis(三)
    初始myBatis(二)
    微信小程序学习九 事件系统
    微信小程序学习八 wxs
    微信小程序学习七 视图层wxml语法
    微信小程序学习六 模块化
  • 原文地址:https://www.cnblogs.com/zsb517/p/4628307.html
Copyright © 2020-2023  润新知