美文网首页
Lua 逗号和点号的区别

Lua 逗号和点号的区别

作者: 泱千澈 | 来源:发表于2019-04-02 21:58 被阅读0次
  • 测试代码 (一)
function string.split(str, delimiter)
    if str == nil or str == '' or delimiter == nil then
        return nil
    end
    local results = {}
    for match in (str .. delimiter):gmatch('(.-)' .. delimiter) do
        print(match)
        table.insert(results, match)
    end
    return results
end

for i,v in pairs(string.split('a,b,c',',')) do print(i, v) end

把这段代码运行到测试地址进行测试,得到如图所示的结果


其中(str .. delimiter):gmatch('(.-)' .. delimiter)其实是用到string.gmatch(s, pattern),而这里换成了冒号用法s:gmatch(pattern),string.gmatch(s, pattern)的用法可以参照Lua的字符串匹配与正则表达式。此例中(.-)用到了匹配前一字符0次或多次
  • 测试代码(二)
local test = {}
function test:func( arg1, arg2)
  print(arg1, arg2, self)
end

function test.func1( arg1, arg2)
  print(arg1, arg2, self)
end

test:func(1,2) 
test.func(1,2) 
test:func1(1,2)
test.func1(1,2) 

从结果开始看出,点号相当于静态方法,冒号相当于成员方法,他们之间可以相互转换。冒号方法相当于省略了第一个self参数,内部可以直接方法。具体可以这样分析:

test:func(1,2),属直接使用 ,self内部可以直接方法,所以结果是1 2 table
test.func(1,2),属转换使用,self为arg1,此例即为 1,2arg1,arg2未赋值, 所以结果是2 nil 1
test:func1(1,2),属转换使用,self参数隐藏,tablearg11arg2,所以结果是table 1 nil
test.func1(1,2),属直接使用,self未赋值,所有结果是1 2 nil

参考网址

Lua点号和冒号区别
lua中冒号(:)与点号(.)的区别

相关文章

  • Lua 逗号和点号的区别

    测试代码 (一) 把这段代码运行到测试地址进行测试,得到如图所示的结果 测试代码(二) test:func(1,2...

  • cocos2d-lua开发(1)

    lua语法小结: 点号冒号的区别:点号语法中一般用于类属性的调用(包括方法)。lua中方法调用用 冒号 变量:一个...

  • 标点符号系列: 2.点号的用法

    点号包括句末点号和句内点号,主要表示说话时的停顿和语气。 句末点号有句号、问号、叹号3中;句内点号有逗号、顿号、分...

  • Lua中冒号(":")和点号(".")的区别

    一、定义方法的区别 (1)冒号定义——默认会接受self参数 (2)点号定义——默认不会接受self参数 二、调用...

  • 热更新05_方法中点和冒号Day1129

    lua编程中,函数的定义和调用 1.用点号调用2.冒号调用 方法的点号定义和点号调用 girl = {money...

  • 9、lua中的self,点号,冒号的关系

    lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用。 点号定义、点号调用 冒号定义、冒号调...

  • 理解Lua 语言中的点、冒号与self

    Lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用其实用“.”或者用“:”都是可以的,区别...

  • 理解lua 语言中的点、冒号与self

    lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用。 可以看出,这里进行了方法的点号定义和...

  • Lua中调用函数使用点号和冒号的区别

    冒号操作会带入一个 self 参数作为第一个参数,用来代表调用的table本身。在函数定义时,使用冒号将默认接收一...

  • Lua-冒号点号

    简介 关于冒号(:)与点号(.) 冒号自带隐藏self,点号不带self,方法用冒号 示例

网友评论

      本文标题:Lua 逗号和点号的区别

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