quick Lua標準庫的擴展

具體在quick-cocos2d-x 框架:framework->function.lua 文件中

--[[--

檢查并嘗試轉換為數值,如果無法轉換則返回 0

@param mixed value 要檢查的值

@param [integer base] 進制,默認為十進制

@return number

]]

function checknumber(value, base)

? ? ? ? return tonumber(value, base) or 0

end


--[[--

檢查并嘗試轉換為整數,如果無法轉換則返回 0

@param mixed value 要檢查的值

@return integer

]]

function checkint(value)

? ? ? ? ? ?return math.round(checknumber(value))

end

--[[--

檢查并嘗試轉換為布爾值,除了 nil 和 false,其他任何值都會返回 true

@param mixed value 要檢查的值

@return boolean

]]

function checkbool(value)

? ? ? ? return (value ~= nil and value ~= false)

end

--[[--

檢查值是否是一個表格,如果不是則返回一個空表格

@param mixed value 要檢查的值

@return table

]]

function checktable(value)

? ? ? ? ?if type(value) ~= "table" then value = {} end

? ? ? ? ? return value

end

--[[--

如果表格中指定 key 的值為 nil,或者輸入值不是表格,返回 false,否則返回 true

@param table hashtable 要檢查的表格

@param mixed key 要檢查的鍵名

@return boolean

]]

function isset(hashtable, key)

? ? ? local t = type(hashtable)

? ? ?return (t == "table" or t == "userdata") and hashtable[key] ~= nil

end

-- 根據系統時間初始化隨機數種子,讓后續的 math.random() 返回更隨機的值

-- @function [parent=#math] newrandomseed

-- end --

function math.newrandomseed()

? ? ? ? local ok, socket = pcall(function()

? ? ? ? return require("socket")

? ? ? ? ?end)

? ? ? ? if ok then

? ? ? ? ? ? ?-- 如果集成了 socket 模塊,則使用 socket.gettime() 獲取隨機數種子

? ? ? ? ?math.randomseed(socket.gettime() * 1000)

? ? ? ? else

? ? ? ? ?math.randomseed(os.time())

? ? ? ? ?end

? ? ? ? ?math.random()

? ? ? ? ?math.random()

? ? ? ? ?math.random()

? ? ? ? math.random()

end

--------------------------------

-- 對數值進行四舍五入,如果不是數值則返回 0

-- @function [parent=#math] round

-- @param number value 輸入值

-- @return number#number

-- end --

function math.round(value)

? ? ? ?value = checknumber(value)

? ? ? ?return math.floor(value + 0.5)

end

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,769評論 0 33
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 野人住在一個林子里,不是很大,但是也還算安靜的一個林子,各種樹木花鳥動物都還齊全。姑娘住在一個小城里,離林子不太遠...
    甲甲魚閱讀 539評論 0 1
  • 今天我早班,七點多起的床,快八點時是吃早餐。吃了白粥,雞蛋&菜包。不知道為什么,沒什么胃口,可能因為是白粥吧。不久...
    晝夜界mm閱讀 320評論 0 0