lua 中的闭包

it2025-01-20  21

带入隐藏值(不能被外部访问的)实现数据保护

例1.

   function newCounter()     local i = 0     return function() -- anonymous function           i = i + 1         return i     end  end  c1 = newCounter()  print(c1()) --> 1  print(c1()) --> 2

  注:对 i的值进行了保护,外部只能得到i所带来的效应,不能访问i  

例2.

  function myPower(x)     return function(y)

         return y^x

       end  end  power2 = myPower(2)  power3 = myPower(3)  print(power2(4)) --4的2次方  print(power3(5)) --5的3次方  print(myPower(2)(3)) --3的2次方

  注:xy分两次进行了传入

转载于:https://www.cnblogs.com/ad-1990/p/4121312.html

最新回复(0)