加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

一些自定义的Lua常用的工具函数

发布时间:2020-12-13 20:08:22 所属栏目:PHP教程 来源:网络整理
导读:sk = sk or {}local xmtool = {}--[[@brief Defined some commonly used functions @by xiaoming]]local countCode = [[ local i = 0 return function() i = i + 1 return i end]]---自定义计数器xmtool.xmCounter = assert(loadstring(countCode))---------
sk = sk or {} local xmtool = {} --[[ @brief Defined some commonly used functions @by xiaoming ]] local countCode = [[ local i = 0 return function() i = i + 1 return i end ]] ---自定义计数器 xmtool.xmCounter = assert(loadstring(countCode)) --------------------------------- --获得类的单例函数 --@param clss 要获得单例的类 --@param singleton 需要获得的单例 --@return clss 的singleton --------------------------------- function xmtool.getSingleton(clss,singleton,...) return singleton or clss:new(...) end --------------------------------------- --包装回调函数,使得类方法定义1致化 --@param obj 要调用的函数的对象 --@param method function 要调用的函数 --------------------------------------- function xmtool.handlerCall(obj,method) return function(...) return method(obj,...) end end ------------------------------------------- --字符串分割 --@param input 输入的字符串 --@param delimiter 用于分割的字符 --@return #table/如果分隔符为空,则返回false ------------------------------------------- function xmtool.splitStr(input,delimiter) input = tostring(input) delimiter = tostring(delimiter) if (delimiter=='') then return false end local pos,arr = 0,{} -- for each divider found for st,sp in function() return string.find(input,delimiter,pos,true) end do table.insert(arr,string.sub(input,st - 1)) pos = sp + 1 end table.insert(arr,pos)) return arr end ----------------------------------- --字符串分割 --@param input 输入的字符串 --@param delimiter 用于分割的字符 --@return #string ----------------------------------- function xmtool.getSplitStr(input,delimiter) local arr = xmtool.splitStr(input,delimiter) local str = "" if(type(arr) ~= "table") then return tostring(input) else for i=1,#arr do str = str..arr[i] end end return str end ----------------------------- --打印信息 ----------------------------- function xmtool.skLog(...) print(string.format(...)) end ----------------------- -------打印日志--------- ----------------------- function xmtool.printFuncMsg(msgInfo,tableFunc) printInfo(msgInfo..",file:%s,line:%s",tableFunc.source,tableFunc.currentline) end ----------------------------- --打印相应堆栈信息 --msg 我们添加的自定义信息 ----------------------------- function xmtool.printTraceMsg(msg) xmtool.skLog("----------------------------------------") xmtool.skLog("MSG: " .. tostring(msg) .. " ") xmtool.skLog(debug.traceback()) xmtool.skLog("----------------------------------------") return msg end -------------------------------------- --关键函数出错检测 --@param func #function 需要检测的函数 --@param msg 自定义信息 --@param level 毛病级别 -------------------------------------- function xmtool.catchError(func,msg,level) local state,message = xpcall(func,function() return xmtool.printTraceMsg(msg) end) return state or error(message,level) end --------------------------------- --将数字转为百分比字符串 --@param number 要转化的数字 --@param retain 要保存的小数位数 --------------------------------- function xmtool.getPercentString(number,retain) local ret = tostring(retain) return string.format("%."..ret.."f".."%%",number*100) end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读