• Lua的元方法__newindex元方法


    上一篇介绍了__index元方法,总结来说:__index元方法是用于处理访问table中不存在的字段时的情况。

    而今天,介绍的__newindex元方法,总结来说,就是:用于处理给table中不存在的字段赋值时的情况。也就是说,当给table中不存在的字段赋值时,将会调用__newindex元方法,代替赋值操作。

    tb = setmetatable({name = "dong"},{__newindex = function(tb, k, v) 
                                                        print("can,t assgin value:"..v.." because no this key:"..k.." in tb") 
                                                    end
    })
    
    tb.age = 12

    打印结果:can,t assgin value:12 because no this key:age in tb

    总结:

    (1)如果__newindex是一个函数,则在给table不存在的字段赋值时,会调用这个函数。

    (2)如果__newindex是一个table,则在给table不存在的字段赋值时,会直接给__newindex的table赋值。

  • 相关阅读:
    2015多校.Zero Escape (dp减枝 && 滚动数组)
    UVa-11809
    UVa-1588 Kickdown
    UVa-1587
    UVa-10340
    UVa-202
    UVa-1368
    UVa-232 Crossword Answers
    UVa-227
    UVa-455 Periodic Strings
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5606176.html
Copyright © 2020-2023  润新知