base_Tips.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. pack = pack or table.pack
  2. unpack = unpack or table.unpack
  3. -- 解决原生pack的nil截断问题,spack与sunpack要成对使用
  4. function spack(...)
  5. local params = {...}
  6. params.n = select('#', ...)
  7. return params
  8. end
  9. function sunpack(params)
  10. return unpack(params, 1, params.n)
  11. end
  12. function trequire(path)
  13. local ok, error = pcall(require, path)
  14. if not ok then
  15. logError(error)
  16. end
  17. return ok and error
  18. end
  19. function rrequire(path)
  20. package.loaded[path] = nil
  21. --需要添加一个模板名称
  22. local tbl = require(path)
  23. tbl.chunkName = string.match(path, "[^%/]+%w$")
  24. return tbl
  25. end
  26. function rtrequire(path)
  27. package.loaded[path] = nil
  28. return trequire(path)
  29. end
  30. function scall(func, ...)
  31. if not func then
  32. return
  33. end
  34. local args = spack(...)
  35. if #args == 0 then
  36. return xpcall(func, logError)
  37. else
  38. return xpcall(function ()
  39. return func(sunpack(args))
  40. end, logError)
  41. end
  42. end
  43. local enumId = 0
  44. function enum(n)
  45. enumId = n or enumId + 1
  46. return enumId
  47. end
  48. function bind(self, callback)
  49. return callback and function (...)
  50. return callback(self, ...)
  51. end
  52. end