青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

每天早晨叫醒你的不是鬧鐘,而是夢(mèng)想

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  62 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

一、表達(dá)式:

    1. 算術(shù)操作符:
    Lua支持常規(guī)算術(shù)操作符有:二元的“+”、“-”、“*”、“/”、“^”(指數(shù))、“%”(取模),一元的“-”(負(fù)號(hào))。所有這些操作符都可用于實(shí)數(shù)。然而需要特別說(shuō)明的是取模操作符(%),Lua中對(duì)該操作符的定義為:
    a % b == a - floor(a / b) * b
    由此可以推演出x % 1的結(jié)果為x的小數(shù)部分,而x - x % 1的結(jié)果則為x的整數(shù)部分。類(lèi)似的,x - x % 0.01則是x精確到小數(shù)點(diǎn)后兩位的結(jié)果。
    
    2. 關(guān)系操作符:
    Lua支持的關(guān)系操作符有:>、<、>=、<=、==、~=,所有這些操作符的結(jié)果均為true或false。
    操作符==用于相等性測(cè)試,操作符~=用于不等性測(cè)試。這兩個(gè)操作符可以應(yīng)用于任意兩個(gè)值。如果兩個(gè)值的類(lèi)型不同,Lua就認(rèn)為他們不等。nil值與其自身相等。對(duì)于table、userdata和函數(shù),Lua是通過(guò)引用進(jìn)行比較的。也就是說(shuō),只有當(dāng)他們引用同一個(gè)對(duì)象時(shí),才視為相等。如:

復(fù)制代碼
1 a = {}
2 a.x = 1
3 a.y = 0
4 b = {}
5 b.x = 1
6 b.y = 1
7 c = a
復(fù)制代碼

    其結(jié)果是a == c,但a ~= b。
    對(duì)于字符串的比較,Lua是按照字符次序比較的。
    
    3. 邏輯操作符:
    Lua支持的邏輯操作符有:and、or和not。與條件控制語(yǔ)句一樣,所有的邏輯操作符都將false和nil視為假,其他的結(jié)果均為真。和其他大多數(shù)語(yǔ)言一樣,Lua中的and和or都使用“短路原則”。在Lua中有一種慣用寫(xiě)法"x = x or v",它等價(jià)于:if not x then x = v end。這里還有一種基于“短路原則”的慣用寫(xiě)法,如:
    max = (x > y) and x or y
    這等價(jià)于C語(yǔ)言中max = (x > y) ? x : y。由于x和y均為數(shù)值,因此它們的結(jié)果將始終為true。
    
    4. 字符串連接:
    前一篇Blog已經(jīng)提到了字符串連接操作符(..),這里再給出一些簡(jiǎn)單的示例。
    /> lua
    > print("Hello " .. "World)
    Hello World
    > print(0 .. 1)  --即使連接操作符的操作數(shù)為數(shù)值類(lèi)型,在執(zhí)行時(shí)Lua仍會(huì)將其自動(dòng)轉(zhuǎn)換為字符串。
    01

    5. table構(gòu)造器:
    構(gòu)造器用于構(gòu)建和初始化table的表達(dá)式。這是Lua特有的表達(dá)式,也是Lua中最有用、最通用的機(jī)制之一。其中最簡(jiǎn)單的構(gòu)造器是空構(gòu)造器{},用于創(chuàng)建空table。我們通過(guò)構(gòu)造器還可以初始化數(shù)組,如:

復(fù)制代碼
 1 days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
2 for i = 1,#days do
3 print(days[i])
4 end
5 --輸出結(jié)果為
6 --Sunday
7 --Monday
8 --Tuesday
9 --Wednesday
10 --Thursday
11 --Friday
12 --Saturday
復(fù)制代碼

    從輸出結(jié)果可以看出,days在構(gòu)造后會(huì)將自動(dòng)初始化,其中days[1]被初始化為"Sunday",days[2]為"Monday",以此類(lèi)推。
    Lua中還提供了另外一種特殊的語(yǔ)法用于初始化記錄風(fēng)格的table。如:a = { x = 10, y = 20 },其等價(jià)于:a = {}; a.x = 10; a.y = 20
    在實(shí)際編程時(shí)我們也可以將這兩種初始化方式組合在一起使用,如:

復(fù)制代碼
polyline = {color = "blue", thickness = 2, npoints = 4, 
{x = 0, y = 0},
{x = 10, y = 0},
{x = -10, y = 1},
{x = 0, y = 1} }
print(polyline["color"]);
print(polyline[2].x)
print(polyline[4].y)
--輸出結(jié)果如下:
--
blue
--
10
--
1
復(fù)制代碼

    除了以上兩種構(gòu)造初始化方式之外,Lua還提供另外一種更為通用的方式,如:

1 opnames = { ["+"] = "add", ["-"] = "sub", ["*"] = "mul", ["/"] = "div"}
2 print(opnames["+"])
3 i = 20; s = "-"
4 a = { [i + 0] = s, [i + 1] = s .. s, [i + 2] = s..s..s }
5 print(a[22])

    對(duì)于table的構(gòu)造器,還有兩個(gè)需要了解的語(yǔ)法規(guī)則,如:
    a = { [1] = "red", [2] = "green", [3] = "blue", }  
    這里需要注意最后一個(gè)元素的后面仍然可以保留逗號(hào)(,),這一點(diǎn)類(lèi)似于C語(yǔ)言中的枚舉。
    a = {x = 10, y = 45; "one", "two", "three" }
    可以看到上面的聲明中同時(shí)存在逗號(hào)(,)和分號(hào)(;)兩種元素分隔符,這種寫(xiě)法在Lua中是允許的。我們通常會(huì)將分號(hào)(;)用于分隔不同初始化類(lèi)型的元素,如上例中分號(hào)之前的初始化方式為記錄初始化方式,而后面則是數(shù)組初始化方式。

二、語(yǔ)句:

    1. 賦值語(yǔ)句:
    Lua中的賦值語(yǔ)句和其它編程語(yǔ)言基本相同,唯一的差別是Lua支持“多重賦值”,如:a, b = 10, 2 * x,其等價(jià)于a = 10; b = 2 * x。然而需要說(shuō)明的是,Lua在賦值之前需要先計(jì)算等號(hào)右邊的表達(dá)式,在每一個(gè)表達(dá)式都得到結(jié)果之后再進(jìn)行賦值。因此,我們可以這樣寫(xiě)變量交互:x,y = y,x。如果等號(hào)右側(cè)的表達(dá)式數(shù)量少于左側(cè)變量的數(shù)量,Lua會(huì)將左側(cè)多出的變量的值置為nil,如果相反,Lua將忽略右側(cè)多出的表達(dá)式。

    2. 局部變量與塊:
    Lua中的局部變量定義語(yǔ)法為:local i = 1,其中l(wèi)ocal關(guān)鍵字表示該變量為局部變量。和全局變量不同的是,局部變量的作用范圍僅限于其所在的程序塊。Lua中的程序可以為控制結(jié)構(gòu)的執(zhí)行體、函數(shù)執(zhí)行體或者是一個(gè)程序塊,如:
    下面的x變量?jī)H在while循環(huán)內(nèi)有效。

1 while i <= x do
2 local x = i * 2
3 print(x)
4 i = i + 1
5 end

    如果是在交互模式下,當(dāng)執(zhí)行l(wèi)ocal x = 0之后,該變量x所在的程序即以結(jié)束,后面的Lua語(yǔ)句將被視為新的程序塊。如果想避免此類(lèi)問(wèn)題,我們可以顯式的聲明程序塊,這樣即便是在交互模式下,局部變量仍然能保持其塊內(nèi)有效性,如:

1 do
2 local a2 = 2 * a
3 local d = (b ^ 2 - 4 * a) ^ (1 / 2)
4 x1 = (-b + d) / a2
5 x2 = (-b - d) / a2
6 end --a2和d的作用域至此結(jié)束。

    和其它編程語(yǔ)言一樣,如果有可能盡量使用局部變量,以免造成全局環(huán)境的變量名污染。同時(shí)由于局部變量的有效期更短,這樣垃圾收集器可以及時(shí)對(duì)其進(jìn)行清理,從而得到更多的可用內(nèi)存。    

    3. 控制結(jié)構(gòu):
    Lua中提供的控制語(yǔ)句和其它大多數(shù)開(kāi)發(fā)語(yǔ)言所提供的基本相同,因此這里僅僅是進(jìn)行簡(jiǎn)單的列舉。然后再給出差異部分的詳細(xì)介紹。如:
    1). if then else
    if a < 0 then 
        b = 0
    else
        b = 1
    end
    
    2). if elseif else then
    if a < 0 then 
        b = 0
    elseif a == 0 then
        b = 1
    else
        b = 2
    end
    
    3). while
    local i= 1
    while a[i] do
        print(a[i])
        i = i + 1
    end
    
    4). repeat
    repeat
        line = io.read()
    until line ~= "" --直到until的條件為真時(shí)結(jié)束。
    print(line)
    
    5). for
    for var = begin, end, step do --如果沒(méi)有step變量,begin的缺省步長(zhǎng)為1。
        i = i + 1
    end
    需要說(shuō)明的是,for循環(huán)開(kāi)始處的三個(gè)變量begin、end和step,如果它們使表達(dá)式的返回值,那么該表達(dá)式將僅執(zhí)行一次。再有就是不要在for的循環(huán)體內(nèi)修改變量var的值,否則會(huì)導(dǎo)致不可預(yù)知的結(jié)果。
    
    6). foreach
    for i, v in ipairs(a) do  --ipairs是Lua自帶的系統(tǒng)函數(shù),返回遍歷數(shù)組的迭代器。
        print(v)
    end
    
    for k in pairs(t) do      --打印table t中的所有key。
        print(k)
    end
    見(jiàn)如下示例代碼:

復(fù)制代碼
 1 days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }
2 revDays = {}
3 for k, v in ipairs(days) do
4 revDays[v] = k
5 end
6
7 for k in pairs(revDays) do
8 print(k .. " = " .. revDays[k])
9 end
10
11 --輸出結(jié)果為:
12 --Saturday = 7
13 --Tuesday = 3
14 --Wednesday = 4
15 --Friday = 6
16 --Sunday = 1
17 --Thursday = 5
18 --Monday = 2
復(fù)制代碼

    7). break
    和C語(yǔ)言中的break語(yǔ)義完全相同,即跳出最內(nèi)層循環(huán)。

posted on 2014-02-17 17:35 沛沛 閱讀(230) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Script
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久国产乱子精品免费女| 久久精品国产综合精品| 在线观看日韩av| 免费成人在线视频网站| 一区二区精品在线| 久久精品91久久香蕉加勒比| 美女网站在线免费欧美精品| 亚洲免费一在线| 久久gogo国模啪啪人体图| 亚洲欧美日韩另类精品一区二区三区| 激情成人综合| 国产一区二区三区高清| 中日韩美女免费视频网站在线观看| 久久亚洲精品一区| 久久精品国产亚洲精品| 久久久久久免费| 久久精品二区三区| 欧美在线free| 欧美一级午夜免费电影| 中文av一区二区| 乱人伦精品视频在线观看| 久久综合久久美利坚合众国| 欧美中文字幕视频| 欧美一区二区黄| 久久久久久噜噜噜久久久精品| 亚洲欧美日韩在线观看a三区| 日韩网站在线| 久久福利一区| 欧美日产国产成人免费图片| 欧美色123| 精品二区视频| 中国成人在线视频| 亚洲午夜激情免费视频| 亚洲国产成人在线播放| 亚洲精品在线电影| 久久综合中文字幕| 国产午夜精品理论片a级探花| 国产精品亚洲综合天堂夜夜| 国产精品99一区二区| 精品动漫一区| 噜噜噜久久亚洲精品国产品小说| 亚洲乱码国产乱码精品精可以看 | 在线欧美日韩| 亚洲一区二区三区四区在线观看| 99热在线精品观看| 日韩视频免费| 欧美日韩免费在线| 亚洲精品日韩在线观看| 久久这里只精品最新地址| 中国成人在线视频| 欧美在线在线| 亚洲国产成人久久综合| 另类综合日韩欧美亚洲| 久久精品亚洲一区| 好看的亚洲午夜视频在线| 这里是久久伊人| 99re66热这里只有精品3直播 | 国产精品久久久久久久浪潮网站| 这里只有视频精品| 欧美有码视频| 91久久精品美女| 欧美福利影院| 欧美日韩免费观看一区二区三区| 午夜免费在线观看精品视频| 久久久久国产精品www| 久久精品91久久香蕉加勒比| 国产精品九九久久久久久久| 一区二区三区四区五区精品视频| 亚洲美女色禁图| 亚洲肉体裸体xxxx137| 欧美日韩一区综合| 牛人盗摄一区二区三区视频| 欧美在线观看网站| 久久伊人亚洲| 欧美一区2区三区4区公司二百| 亚洲第一二三四五区| 99热这里只有成人精品国产| 欧美一区日本一区韩国一区| 老司机免费视频一区二区| 日韩一二三区视频| 夜夜嗨一区二区三区| 国产精品播放| 久久亚洲精品一区二区| 激情欧美丁香| 老**午夜毛片一区二区三区| 亚洲欧美综合另类中字| 久久尤物视频| 亚洲激情亚洲| 亚洲第一区在线观看| 欧美精品导航| 一区二区免费在线播放| 99热这里只有成人精品国产| 亚洲日本理论电影| 欧美成人午夜激情视频| 99re热这里只有精品免费视频| 欧美大片在线观看一区| 亚洲精品孕妇| 亚洲国产精品久久久久久女王| 99精品视频网| 亚洲另类在线一区| 欧美在线亚洲在线| 亚洲欧美一区二区激情| 1024国产精品| 亚洲欧美视频一区| 先锋资源久久| 国产精品豆花视频| 国产一区二区剧情av在线| 久久久夜精品| 欧美韩国在线| 亚洲影视综合| 欧美国产专区| 欧美国产高清| 亚洲天堂第二页| 亚洲国产精品美女| 欧美在线视频日韩| 国产精品wwwwww| 亚洲深夜影院| 一本色道久久加勒比精品| 久久久高清一区二区三区| 久久婷婷国产综合精品青草| 欧美国产日产韩国视频| 亚洲精品免费一区二区三区| 亚洲视频1区2区| 欧美电影专区| 亚洲一区一卡| 欧美福利在线| 久久久国产一区二区| 欧美午夜女人视频在线| 亚洲国产一区二区三区在线播| 亚洲少妇在线| 99热在这里有精品免费| 国产一区99| 久久福利精品| 伊人成人开心激情综合网| 欧美电影免费观看大全| 午夜精品免费视频| 亚洲麻豆av| 久久网站免费| 美日韩精品视频免费看| 亚洲黄网站黄| 亚洲欧美清纯在线制服| 久久久久久亚洲综合影院红桃 | 亚洲国产一区在线观看| 日韩亚洲在线| 一个色综合导航| 亚洲黄色成人久久久| 欧美日韩高清不卡| 国产精品99久久久久久久久久久久 | 欧美一区网站| 国产精品亚洲第一区在线暖暖韩国| 免费高清在线一区| 亚洲精品在线观看免费| 欧美黑人一区二区三区| 性欧美在线看片a免费观看| 亚洲欧美日韩成人| 一区二区三区在线视频观看| 蜜桃av一区二区| 亚洲在线一区二区三区| 亚洲午夜精品视频| 亚洲成色777777女色窝| 亚洲一区尤物| 麻豆av一区二区三区久久| 欧美一区二区三区四区高清| 欧美成人高清| 一本色道久久88综合日韩精品| 欧美日韩国产麻豆| 亚洲高清久久久| 激情综合激情| 久久久久一区| 国产精品高清免费在线观看| 亚洲先锋成人| 久久久综合网| 久久久国产视频91| 欧美极品在线观看| 久久精品毛片| 国模大胆一区二区三区| 国产日韩欧美精品一区| 一本色道精品久久一区二区三区| 亚洲国产成人在线播放| 欧美一区影院| 国产精品久久久亚洲一区 | 欧美成人国产一区二区| 久久久xxx| 国产精品99久久99久久久二8| 欧美黑人多人双交| 99re热这里只有精品视频| 一区二区三区av| 国产自产精品| 亚洲午夜久久久| 亚洲免费成人| 亚洲黄色成人网| 欧美日韩另类国产亚洲欧美一级| 亚洲综合不卡| 最近中文字幕日韩精品 | 亚洲成人在线免费| 日韩一级裸体免费视频| 蜜桃视频一区| 亚洲毛片一区| 欧美一级免费视频| 一本色道久久88综合日韩精品|