zoukankan      html  css  js  c++  java
  • lua委托

    原文链接:https://blog.csdn.net/hjssss/article/details/100130964

    1 基本函数绑定

    function func(a)
      print(a)
    end
     
    function bind(func, ...)    
        return function(...)
            func( ...)
        end
    end
     
     
    f = bind(func)
    f(1)

    2 基于table表的构造绑定方式

    a = {}
     
    function a.init(data)
        a.data = data
    end
     
    function a.func(self,t)
      print(self.data)
    end
     
    function bind(self, func, ...)    
        return function(self, ...)
            func( self ,...)
        end
    end
     
    a.init(2)
    f = bind(a, a.func)
    f(a, 1)

    3 基于类的构造绑定方式

    a = {}
    function a:new(data)
        o = setmetatable({}, {__index = self})
        self.data = data
        return o
    end
     
    function a:func()
      print(self.data)
    end
     
    function bind(self, func, ...)    
        return function(self, ...)
            func( self ,...)
        end
    end
     
    t = a:new(2)
    f = bind(t, t.func)
    f(t)

    4 通用的接口格式

    function func(self, a)
      print(a)
    end
     
    function bind(self, func, ...)    
        return function(self, ...)
            func(self, ...)
        end
    end
     
     
    f = bind(nil, func)
    f(nil, 2)
  • 相关阅读:
    Java_多线程入门
    JAVA多线程基础(一)
    多线程1
    1.优化MySQL数据库
    廖胤松
    Mybatais
    Spring Boot入门
    MySQL的安装步骤详解
    MySQL入门
    WEB测试方法
  • 原文地址:https://www.cnblogs.com/yifengs/p/14925955.html
Copyright © 2011-2022 走看看