亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

Lua基本語法 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.ishadingyu.com - 電腦資料】

    Lua是相當簡單易學,本篇文章來給大家稍微講一下Lua的語法,不會長篇累牘得把Lua的所有語法都講一遍,這里通過以下幾點來講Lua語言的基礎語法,

Lua基本語法

    1 簡介

    由 clean C 實現(xiàn)。需要被宿主程序調用,可以注入 C 函數(shù)。

    2 語法約定

    Lua 的語法基于 BNF 的語法規(guī)則。

    Lua 對大小寫敏感。

    2.1 保留關鍵字

    C 語言中沒有的關鍵字有:

    代碼如下:

    and elseif function

    in nil local not or

    repeat then until

    規(guī)范:全局變量以下劃線開頭。

    2.2 操作符

    C 語言中沒有的操作符:

    ^

    ~=

    // -- 向下取整

    Lua 中沒有的操作符:

    +=

    -=

    2.3 字符串定義

    采用轉義符:通過轉義符表示那些有歧義的字符

    字符表示

    a          -- 代表字符 a

    \97        -- 代表字符 a

    \049       -- 代表數(shù)字字符 1

    其他轉義符表示

    \\n        -- 代表字符串 \n

    \n         -- 代表換行

    注意數(shù)字字符必須是三位。其他字符則不能超過三位。

    采用長括號:長括號內(nèi)的所有內(nèi)容都作為普通字符處理。

    [[]]       -- 0級長括號

    [==[]==]   -- 2級長括號

    3 值與類型

    Lua 是動態(tài)語言,變量沒有類型,值才有。值自身攜帶類型信息。

    Lua 有八種基本數(shù)據(jù)類型:nil, boolean, number, string, function, userdata, thread, table。

    僅 nil 和 false 導致條件為假,其他均為真。

    userdata 類型變量用于保存 C 數(shù)據(jù)。 Lua 只能對該類數(shù)據(jù)進行使用,而不能進行創(chuàng)建或修改,保證宿主程序完全掌握數(shù)據(jù)。

    thread 用于實現(xiàn)協(xié)程(coroutine)。

    table 用于實現(xiàn)關聯(lián)數(shù)組。table 允許任何類型的數(shù)據(jù)做索引,也允許任何類型做 table 域中的值(前述

    任何類型 不包含 nil),

電腦資料

Lua基本語法》(http://www.ishadingyu.com)。table 是 Lua 中唯一的數(shù)據(jù)結構。

    由于函數(shù)也是一種值,所以 table 中可以存放函數(shù)。

    function, userdata, thread, table 這些類型的值都是對象。這些類型的變量都只是保存變量的引用,并且在進行賦值,參數(shù)傳遞,函數(shù)返回等操作時不會進行任何性質的拷貝。

    庫函數(shù) type() 返回變量的類型描述信息。

    3.1 強制轉換

    Lua 提供數(shù)字與字符串間的自動轉換。

    可以使用 format 函數(shù)控制數(shù)字向字符串的轉換。

    4 變量

    變量有三種類型:全局變量、局部變量、表中的域。

    函數(shù)外的變量默認為全局變量,除非用 local 顯示聲明。函數(shù)內(nèi)變量與函數(shù)的參數(shù)默認為局部變量。

    局部變量的作用域為從聲明位置開始到所在語句塊結束(或者是直到下一個同名局部變量的聲明)。

    變量的默認值均為 nil。

    代碼如下:

    a = 5              -- 全局變量

    local b = 5    -- 局部變量

    function joke()

    c = 5          -- 局部變量

    local d = 6 -- 局部變量

    end

    print(c,d)     --> nil nil

    do

    local a = 6 -- 局部變量

    b = 6          -- 全局變量

    print(a,b); --> 6 6

    end

    print(a,b)     --> 5 6

    方便標記,--> 代表前面表達式的結果。

    4.1 索引

    對 table 的索引使用方括號 []。Lua使用語法糖提供 . 操作。

    t[i]

    t.i                -- 當索引為字符串類型時的一種簡化寫法

    gettable_event(t,i) -- 采用索引訪問本質上是一個類似這樣的函數(shù)調用

    4.2 環(huán)境表

    所有全局變量放在一個環(huán)境表里,該表的變量名為 _env 。對某個全局變量 a 的訪問即 _env.a (_env_ 只是為了方便說明)。

    每個函數(shù)作為變量持有一個環(huán)境表的引用,里面包含該函數(shù)可調用的所有變量。

    子函數(shù)會從父函數(shù)繼承環(huán)境表。

    可以通過函數(shù) getfenv / setfenv 來讀寫環(huán)境表。

    以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

最新文章