unity lua . : 语法糖 区别

  • A+
所属分类:Unity3d
Account = {balance = 1000}    -- 账户余额初始为1000。
--[[ 取钱。
     使用面向对象的方式隐藏了"self"参数,
     "withdraw()"完整的参数列表是"Account.withdraw(self, v)"。]]
function Account:withdraw(v)
    self.balance = self.balance - v
end
 
--[[ 使用面向对象的方式隐藏了"self"参数,
     实际传递给"withdraw()"的参数是"Account"和"100.00"。]]
Account:withdraw(100.00)
print(Account.balance)    --> 900.0
Account = {balance = 1000}    -- 账户余额初始为1000。
function Account.withdraw(self, v)    -- 使用"."定义函数。
    self.balance = self.balance - v
end
Account:withdraw(100.00)    -- 使用":"调用函数。
print(Account.balance)    --> 900.0
 
-- 存钱。
function Account:deposit(v)    -- 使用":"定义函数。
  self.balance = self.balance + v
end
Account.deposit(Account, 600.00)    -- 使用"."调用函数。
print(Account.balance)    --> 1500.0

用冒号(:)调用函数时,会默认传一个值(调用者自身self)作为第一个参数;
       用点(.)调用函数时,则没有;

用冒号(:)创建函数时,会默认添加一个参数self,作为第一个参数;
       用点(.)调用函数时,则没有;

. 和 :函数可以相互调用,但需要正确的传递self值。

运行结果如下:
unity lua .  :  语法糖 区别

weinxin
我的微信
这是我的微信扫一扫
maple

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  1

    • maple maple Admin

      写的很棒 :wink: