lua 特定参数 运算符重载

简介: 运算符重载

特定参数 运算符重载

--运算符重载
father={
    --__add相当于运算符重载,当子表使用+运算符时 会调用该方法
    --加
    __add= function(a1,a2)
        return a1.num+a2.num
    end,
    --减
    __sub=function(a1,a2)
        return a1.num-a2.num
    end,
    --乘
    __mul=function(a1,a2)
        return a1.num*a2.num
    end,
    --除
    __div =function(a1,a2)
        return a1.num/a2.num
    end,
    --取余
    __mod = function(a1,a2)
        return a1.num%a2.num
    end,
    --幂运算
    __pow = function(a1,a2)
        return a1.num^a2.num        
    end,
    --运算符==
    __eq = function(a1,a2)
        return true
    end,
    --<
    __lt = function(a1,a2)
        return true
    end,
    --运算符<=
    __le = function(a1,a2)
        return false
    end,
    --运算符..
    __concat = function(a1,a2)
        return '666'
    end

}

son ={
    num=1
}
setmetatable(son,father);

son2 ={
    num=2
}
setmetatable(son2,father);


print(son+son2)
print(son-son2)
print(son*son2)
print(son/son2)
print(son%son2)--数A/数B,A小于B,商为0,余数就是它自己 1%2 余数1
print(son^son2)

--如果要用条件运算符 比较两个对象
--这两个对象的元表必须一致 才能准确调用方法
print(son==son2)
print(son<son2)
print(son<=son2)
print(son..son2)

特定操作 __index 和 __newIndex

__index

当子表中 找不到某个属性时
会到元表中 __index指定的表去找属性

--__index

  
meta6 = {
    age = 1,
    __index = { age=2 }
}

myTable6 = {}
setmetatable(myTable6,meta6)

print(myTable6.age)
相关文章
|
8月前
|
C++
C++ 默认参数与引用传递:语法、用法及示例
C++ 允许函数参数具有默认值,简化调用。例如,`void myFunction(string country = &quot;Norway&quot;)` 中`country`默认为&quot;Norway&quot;。默认参数仅适用于函数参数,不包括返回值。引用传递是另一种传递方式,函数直接访问变量内存,允许修改原值,提高效率。`void swapNums(int &x, int &y)` 中`x`和`y`为引用参数。了解这些特性可提升代码可读性和性能。
149 0
|
8月前
|
消息中间件 Kubernetes NoSQL
Lua对可变参数的处理
Lua对可变参数的处理
|
8月前
|
消息中间件 自然语言处理 Kubernetes
Lua闭包和Upvalue上值
Lua闭包和Upvalue上值
|
8月前
|
PHP
PHP进阶-默认参数值和可变参数列表
PHP函数支持默认参数值和可变参数列表两种特性。默认参数值,即可以为参数指定默认值,使得在函数调用时如果没有提供相应参数,则会使用默认值;可变参数列表,即使用不定数量的参数调用函数。本文将详细介绍这两种用法,并通过代码举例说明其使用场景。熟练掌握默认参数和可变参数列表的使用,可以极大地提高PHP开发的效率。
71 0
|
C语言
C语言中参数和变量的区别
C语言中参数和变量的区别
181 0
函数重载&函数默认参数
函数重载&函数默认参数
43 0
|
C# 索引
lua语言——变量
lua语言——变量
157 0
|
数据采集 存储 大数据
Lua 语法数据类型与变量|学习笔记
快速学习 Lua 语法数据类型与变量
|
Python
Python学习:定义函数的默认参数和可变参数
定义函数的默认参数和可变参数
136 0
|
Python
Python - 函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用(下)
Python - 函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用(下)
224 0
Python - 函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用(下)