找回密码
 注册
搜索
查看: 746|回复: 14

哪位大神来解释下如下语句是什么意识

[复制链接]
门派:少林派
发表于 2017-3-28 16:10:43 | 显示全部楼层 |阅读模式
下面这个函数是啥意思啊
function countR(p_number)
   local i = p_number or 10
   return function()
       i = i - 1
           return i
   end
end

还有下面这个函数
function idle()
    hp.expBak = hp.expBak or -1
    if hp.exp and hp.exp~=hp.expBak then
       hp.expBak = hp.exp
           cntrI = countR(20)
        else
           if cntrI()<1 then
              cntrI = countR(20)
              flag.idle = 100
              return idle_set()
           end
        end
    flag.idle=0
    return create_timer_s('idle',30,'idle_set')
end

中的 cntrI = countR(20)和  cntrI()<1是什么意思啊
门派:少林派
 楼主| 发表于 2017-3-28 16:12:31 | 显示全部楼层
召唤各位大神啊               
门派:少林派
 楼主| 发表于 2017-3-28 16:17:21 | 显示全部楼层
我总觉得下面这句话有问题
           if cntrI()<1 then
               cntrI = countR(20)
               flag.idle = 100
               return idle_set()
这段判断让我们经常在任务途中就自动重启了
门派:华山派
发表于 2017-3-28 16:20:29 | 显示全部楼层
闭包
自己baidu吧              
门派:少林派
 楼主| 发表于 2017-3-28 16:24:46 | 显示全部楼层
xyxs@tj 发表于 2017-3-28 16:20
闭包
自己baidu吧

闭包是啥意思啊                       
门派:少林派
 楼主| 发表于 2017-3-28 16:27:20 | 显示全部楼层
xyxs@tj 发表于 2017-3-28 16:20
闭包
自己baidu吧

你这就没回答我的问题                 
门派:桃花岛
发表于 2017-3-28 16:31:30 | 显示全部楼层
大水和尚的mush等级都开始接近六级了啊,厉害
门派:不明
发表于 2017-3-28 16:52:08 | 显示全部楼层
你研究的挺深刻的。。。说真的。以前想该好好学习的。这个是不是C++
门派:天龙寺
发表于 2017-3-28 17:19:27 | 显示全部楼层
太高深了,看不懂
门派:华山派
发表于 2017-3-28 17:54:38 | 显示全部楼层
好吧,我讲解一下。懂不懂就看各人的机缘和悟性了
  1. function countR(p_number)
  2.    local i = p_number or 10
  3.    return function()
  4.        i = i - 1
  5.            return i
  6.    end
  7. end
复制代码

上面这个函数返回的就是一个函数。

  1. cntrI = countR(20)
复制代码

相当于以下代码
  1. i = 20
  2. cntrI = function()
  3.         i = i - 1
  4.         return i
  5. end
复制代码

每执行一次cntrI()
返回的i的值就会-1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-17 03:29 , Processed in 0.036948 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表