1. 程式人生 > >lua的標準庫函式

lua的標準庫函式

數學函式庫math.abs(x)的返回x的絕對值math.acos(x)的返回x的反餘弦值(以弧度計)math.asin(x)的math.atan(x)的math.atan2(Y,X )返回y / x的反正切值(以弧度表示),但使用這兩個引數的符號來找到結果的象限。(它也處理正確的x是零的情況。)math.ceil(x)的返回大於等於x的最小整數math.cos(x)的返回以弧度計的x的餘弦值math.cosh(x)的math.deg (x)的將所給的弧度轉化為角度math.exp(x)的返回值前。math.floor(x)的返回小於等於x的最大的整數math.fmod(X,Y)返回除法的餘數x除以y表示四捨五入商趨向於零。的math.frexp(x)的返回m和e,使得x = M2E,e是一個整數,m的絕對值的範圍是[0.5,1)(或為零時x是零)。math.huge 值HUGE_VAL,大於或等於任何其他數值的值。math.ldexp(M,E)返回M2E(E應為整數)。將Math.log(x)的自然對數math.log10(x)的math.max(X,···)math.min(X,···)返回所有引數中最小的一個math.modf(x)的返回兩個值中,x的整數部分和小數部分math.pi返回圓周率math.pow(X,Y)返回XY。(您也可以使用表示式x ^ y以計算該值。)math.rad(倍)將以角度給出的x轉化為弧度math.random([M [,n])的三種用法1.random( )返回0到1之間的一個偽隨機數2.random(N)返回1到Ñ之間的偽隨機整數3.random(M,N)返回米到Ñ之間的偽隨機整數math.randomseed( x)的設定x作為“種子”為偽隨機數發生器:平等的種子生產數相等的序列數學。黃大仙(x)的math.sinh(x)的的Math.sqrt(X)X的平方根值(等同於x ^ 0.5)math.tan(x)的math.tanh 字串庫提供的字串表裡面的所有功能。它還設定一個metatable中的字串,其中__索引欄位指向字串表。因此,您可以在面向物件風格使用字串函式。例如,string.byte(S,I)可以寫成S:位元組(I)的字串庫假設一個位元組的字元編碼。string.byte(S [,I [,j]的)將字元轉化為對應的整數,預設的我是1,預設的Ĵ是我。string.char(···)將整數轉化為字串。string.dump(函式)返回一個包含給定函式的二進位制表示的字串,從而使在這個字串後面的載入鏈返回函式的一個副本。函式必須是一個Lua函式不上值。string.find(S,圖案[時,init [,(格式字串,···),按照它的第一個引數(該引數必須是字串)給出的描述返回其可變數目的引數的格式化版本,其格式字串遵循相同的規則的標準C函式printf系列的唯一的區別是,該選項/修飾符*,L,L,N,P和h不支援,並且有一個額外的選項,Q的q選項格式化字串在適當的形式安全地被讀回Lua解釋:字串寫入雙引號,和所有雙引號,換行,嵌入式零,然後將字串中的反斜槓之間正確地轉義寫入時,例如呼叫。     與String.Format(“%Q','一個字串“引號”和\ n換行“)將產生的字串:     “一個字串\”引號\“和\       新行“ 選項C,D,E,E,F,G,G,I,O,U ,x和X都期望一個數字作為引數,而q和s期待一個字串。這個函式不接受包含嵌入式零字串值,除了作為引數傳遞給q選項。string.gmatch(S,圖案)返回一個迭代器函式,每次呼叫時,返回下一個從捕獲模式在字串s。如果模式沒有指定捕獲,那麼整個比賽是產於每個呼叫。作為一個例子,下面的迴圈     S =“你好世界從Lua”      的瓦特在string.gmatch(S,“%A +”)做       列印(W)     年底將遍歷從字串s中的所有單詞,列印每行一個。接下來的示例收集所有對的key = value從給定的字串轉換成一個表:     T = {}      S =“從=世界,=的Lua”      的K,V在string.gmatch(S,“(%W +)=( %W +)“)做       T(K)= V      到底對於這個功能,一個'^'在模式開始作為一個錨不起作用,因為這會阻止迭代。string.gsub(S,圖案,REPL [,N])返回第,所有(或前n,如果有)出現的格局已被替換為repl所指定的替換字串,它可以是一個字串,一個表或一個函式的副本。gsub函式也返回,作為它的第二個值,匹配的發生。總數如果REPL是一個字串,那麼它的值是用於替換。字元%可以作為一個轉義字元:在窗體%的n REPL任何序列,用1至9之間N,代表第n個捕獲子字串的值(見下文)。序列%0代表整個匹配。序列%%表示一個%。如果REPL是一個表,則該表中查詢每一場比賽,用第一次捕捉為重點; 如果模式沒有指定捕獲,然後整場比賽被用作鍵。如果REPL是一個函式,那麼這個函式被呼叫每一個匹配發生時,與作為引數傳遞的所有捕獲的子串,在秩序; 如果模式沒有指定捕獲,然後整場比賽被傳遞作為唯一的引數。如果由表查詢,或通過函式呼叫的返回值是一個字串或者一個數字,那麼它被用作替換的字串; 否則,如果它是假的或為零,那麼有沒有替代(也就是原來的比賽保持在字串中)。下面是一些例子:     X = string.gsub(“世界你好”,“(%W +)” ,“%1%1”)     - > X =“你好你好世界世界”      X = string.gsub(“世界你好”,“%W +”,“%0%0”,1)     - > X =“你好你好世界“      X = string.gsub(“你好世界從Lua”,“(%W +)%S *(%W +)”,“%2%1”)     - > X =“世界你好Lua中的”      x = string.gsub(“家= $ HOME,使用者= $ USER”,“%$(%W +)”,os.getenv)     - > X =“家= /家庭/羅伯託,使用者=羅伯託”      X =字串。gsub函式(“4 +5 = $回報4 +5 $”,“%$( - )%$”功能(S)           返回載入鏈(S)()         結束)     - > X =“4 +5 = 9“      本地T = {名稱=“LUA”,版本=“5.1”}      X = string.gsub(“$名稱$ VERSION.tar.gz為”,“%$(%W +)”,T)     - > X =“LUA-5.1.tar.gz” string.len(次)接收一個字串並返回它的長度。空字串“”的長度為0。嵌入式零計數,所以“一\ 000bc \ 000”的長度是5。string.lower(次)接收一個字串並返回此字串的一個副本,其中所有大寫字母改為小寫。所有其它字元保持不變。的大寫字母是什麼的定義取決於當前的語言環境。string.match(S,圖案[時,init])中查詢的第一個模式匹配字串s中。如果找到一個,然後返回匹配的模式捕獲; 否則返回nil。如果模式沒有指定捕獲,那麼整個比賽返回。第三,可選的數字引數初始化指定從哪裡開始搜尋; 它的預設值是1,可以是負的。函式string.rep(S,N)返回一個字串,它的n個拷貝的字串s。的級聯string.reverse(S)返回一個字串,該字串是字串s逆轉。字串。子(S,I [,j]的)返回第,在我開始並一直持續到j中的子串; i和j可以是負的。如果j為不存在,則假定為等於-1(它是相同的字串的長度)。特別是,呼叫string.sub(S,1,J)返回長度為j個字首,string.sub(S,-i)返回s字尾帶長度i。string.upper(次)接收一個字串,並返回此字串的一個副本,其中所有小寫字母改為大寫。所有其它字元保持不變。一個小寫的字母是什麼的定義取決於當前的語言環境。5.4.1 -模式字元類:字元類是用於表示一組字元。下面的組合都是允許在描述一個字元類:X:(?其中x是不是神奇的字元^ $ 1()%[] * + - )代表字元x本身。:(一個點)代表所有字元。%一:代表所有的字母。%c:表示所有的控制字元。%D:代表所有的數字。%L:表示所有小寫字母。%P:代表所有的標點字元。%S:代表所有的空格字元。%U :代表所有大寫字母。%W:代表所有字母數字字元。%X:代表所有的十六進位制數字%Z:代表性格與代表0。%x:(其中x是任意非字母數字字元)表示字元x。這是為了躲避魔法字元的標準方式。。任何標點字元(甚至非魔法)時,可以用來表示自己在一個模式在前面加一個“%” 指的是在集中的所有字元工會的類:[設定]。“ - ”字元的範圍可以通過用分離的範圍的結束字元指定。所有的類%×如上所述,也可以用來作為在套元件。在集合中的所有其他字元代表自己。例如,[%W_](或[_%W])代表所有字母數字字元加下劃線,[0-7]表示八進位制數字,[0-7%L% - ]表示八進位制數字加上小寫字母加上' - '字元的範圍和類之間的相互作用沒有被定義。因此,像[%AZ]或[A-%%]的模式沒有任何意義。[^組]:代表組,其中一組被解釋為上面的補。對於由單個字母表示的所有類(%A,%C等),對應的大寫字母表示的類的補充。例如,%S代表所有非空格字元。字母的定義,空間,和其他字元組依賴於當前的語言環境。尤其是類[AZ]可能不等同於%L。模式專案:一個模式專案可以是單個字元類,在類匹配任何單個字元,一個字元類後跟'*',它匹配0個或多個重複的類的人物。這些重複的專案總是會匹配儘可能長的序列,一個字元類後跟“+”,這在類匹配1次或多次重複字元。這些重複的專案總是會匹配儘可能長的序列,一個字元類其次是' - ',這也是在類匹配0或多次重複字元。不像'*',這些重複的專案將總是匹配最短的序列; 一個字元類其次,它匹配0或1個發生在類一個字元'?'; %N,1和9之間N; 這樣的條目相匹配的子串等於第n捕獲的字串(見下文); %BXY,其中x和y是兩個不同的字元; 這樣的產品相匹配的開始的x,一端與y絃線,並且其中x和y是平衡的。這意味著,如果一個讀取從左至右,對於一個x和-1唉計數1的字串,則結束y是其中計數達到0的第一個y。例如,專案%B()與平衡括號匹配表示式。圖案:圖案是花紋的專案序列。A'^'在模式開始錨定比賽在目標字串的開頭。A'$'在一個模式的結尾錨的比賽在目標字串的結尾。在其它位置,'^'和'$'沒有特殊的含義,代表自己。捕獲:一個模式可以包含子模式用括號括起來; 他們描述捕獲。當匹配成功,目標字串的匹配捕獲的子字串儲存(捕獲)以備將來使用。捕獲按照其左括號的編號。例如,在模式“(一*()%(重量)(%S *))”,該字串匹配的部分“A *()%(重量)(%S *)”儲存在第一個捕獲(因此具有編號1); 字元匹配“。” 捕獲與數字2,和部分匹配的“%S *”有號碼3。作為一個特殊的情況下,空捕獲()捕獲當前字串位置(數字)。舉例來說,如果我們應用模式“()AA()”的字串“flaaap”,會有兩個捕獲:3和5 的圖案不能包含嵌入的零。使用%Z來代替。


string.format("%e", 1000)               輸出1.000000e+03 string.format("%E", 1000)               輸出1.000000E+03 string.format("%6.3f", 13)              輸出13.000 string.format("%q", "One\nTwo")         輸出"One\                                           Two" string.format("%s", "monkey")           輸出monkey string.format("%10s", "monkey")         輸出    monkey string.format("%5.3s", "monkey")        輸出  mon