• <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>
            ::^喬喬^::明鏡臺::原創空間::C#.NET2.0,C++技術BLOG
            人最重要的是心境,一顆平靜安穩的心才能更好的進步,保持自己的心態.成為夢想中的高手QQ群:8664695
            posts - 17,comments - 32,trackbacks - 0

            1、lua學習之入門(一)----環境搭建

            2、lua學習之入門(二)----基礎語法1

            3、lua學習之入門(二)----基礎語法2

            4、lua學習之入門(三)----函數


            ???? 學習LUA第6個小時了,這是第2篇文章,也是我今天學習的最后總結了,LUA我也是個初學者,我目標只是想盡可能的把自己學習的一些想法表現出來.可能寫的沒有那些大蝦們好,大蝦們的生動.但至少是我個人的寫作,本人很不喜歡轉載的,轉載不如直接去別人BLOG看..再一次聲明..我是LUA初學者,一個初學者寫給初學者的....廢話不說..入正題.

            ?????
            ??????? 任何語言,首先要明白的是 標識符 的命名規則,LUA的規則和C語言的沒太大分別都是由:字母,數字,下劃線組成,而且不能以數字開頭..貌似我會的編程語言都是這樣的規定..?? 這個沒啥技術難度....靠死記的..
            ??????? LUA的字符串表示是可以用單引號或者雙引號的...這點跟JAVASCRIPT是一樣的,
            ??????? 在LUA手冊里有一段這樣的東西

            ?????a? = ? ' alo\n123" '
            ?????a?
            = ? " alo\n123\ ""
            ?????a? = ? ' \97lo\10\04923" '
            ?????a?
            = ?[[alo
            ?????
            123 " ]]
            ?????a? = ?[ == [
            ?????alo
            ?????
            123 " ]==]
            手冊里的解釋是這樣的
            字符串還可以用一種長括號括起來的方式定義。我們把兩個正的方括號間插入?n?個等號定義為第?n?級正長括號。就是說,0?級正的長括號寫作?[[?,一級正的長括號寫作?[=[?,如此等等。反的長擴展也作類似定義;舉個例子,4?級反的長括號寫作?]====]?。一個長字符串可以由任何一級的正的長括號開始,而由第一個碰到的同級反的長括號結束。整個詞法分析過程將不受分行限制,不處理任何轉意符,并且忽略掉任何不同級別的長括號。這種方式描述的字符串可以包含任何東西,當然特定級別的反長括號除外。?

            另一個約定是,當正的長括號后面立即跟了一個換行符,這個換行符就不包含在這個字符串內。舉個例子,假設一個系統使用?ASCII?碼(這時,
            'a'?編碼為?97?,換行符編碼為?10?,'1'?編碼為?49?),下面五種方式描述了完全相同的字符串:?

            很別扭啊手冊里的介紹是這個a所代表的字符串顯示都是一樣的...感覺犯暈啊...

            手冊例子想表達的意思我解析一下,
            a = 'alo\n123"'? 這個字符串是用單引號括起來的,123后面跟了個".....想表達的意思就是說,如果用單引號作為字符串的引用的話,內部的雙引號做雙引號處理,
            a = "alo\n123\"" 這個字符串則是用雙引號括起來的,為了解決沖突,就要使用轉義字符\"去代表"
            a = '\97lo\10\04923"'? 這個其實就是ASCII碼轉義而已..
            最令人犯暈的是下面..
            a?=?[==[
            alo
            123"]==]
            這個想表達啥呢?其實這個作用和C#里的@""有點類似..有點像格式輸出吧,,
            里面的思想有個靈活的配對,"[["? 在手冊里有個名字,叫長括號,而在"[==["中間的等號個數代表多少級的長括號,沒有等號為0級,1個等號為1級,類推下去.

            開始在代碼里,我以為這里"級"的意義在于這個字符串占多少行的意思,但是經過我代碼的測試原來沒任何關系..
            依照我這個初學者的猜測...設置這些的意義,目的就是一個避免字符串內過多的使用轉義字符吧,LUA的目標是要做嵌入腳本語言,
            例如有個游戲的對白,
            小孩說:"很牛啊"
            牛說:
            "不牛"
            牛說:
            "]]"
            小孩說:
            "]=]"
            將以上字符
            a=[==[
            小孩說:"很牛啊"
            牛說:
            "不牛"
            牛說:
            "]]"
            小孩說:
            "]=]"]==]
            這樣在[==[里就可以使用任何的字符串表達符,提供了更大的靈活性.


            后來我咨詢了下LUA高手他給我的答復如下
            這個是5.1版本新加的功能,我想主要的作用是屏蔽轉義字符的作用的,在5.0的時候,我們寫lua都需要自己可意去回避一些轉義字符..這個只是我個人想法,你可以問問其他人,目前我實際應用的開發都是5.0居多,這個是5.1新加的,我也不是很確定,但照字面意思..就算不全對,也差不多了

            看來我的猜想是正確的.


            變量

            LUA稱為腳本語言,那么就注定了他的變量是弱類型的,就是說變量沒有類型,至少我認識的腳本語言JAVASCRIPT就是沒類型的.所以姑且把腳本語言定義為變量沒有類型的語言就是腳本語言...(某XX教授:你丫的亂下定義誤人子弟!..純粹是幫助記憶...別教真...別教真).
            ?????????????????????????????????????變量沒有類型,有類型的只是值 (腳本語言的特點)?????????
            Lua?中有八種基本類型:?nil,?boolean,?number,?string,?function,?userdata,?thread,?and?table.?Nil?類型只有一種值?nil?,它的主要用途用于標表識和別的任何值的差異;通常,當需要描述一個無意義的值時會用到它。?Boolean?類型只有兩種值:false?和?true。?nil?和?false?都能導致條件為假;而另外所有的值都被當作真。?Number?表示實數(雙精度浮點數)。(編譯一個其它內部數字類型的?Lua?解釋器是件很容易的事;比如把內部數字類型改作單精度浮點數或長整型。參見文件?luaconf.h?。)?String?表示一串字符的數組。?Lua?是?8-bit?clean?的:字符串可以包含任何?8?位字符,包括零結束符?('\0')?

            userdata 類型用來將任意 C 數據保存在 Lua 變量中。這個類型相當于一塊原生的內存,除了賦值和相同性判斷,Lua 沒有為之預定義任何操作。然而,通過使用 metatable (元表) ,程序員可以為 userdata 自定義一組操作. userdata 不能在 Lua 中創建出來,也不能在 Lua 中修改。這樣的操作只能通過 C API。這一點保證了宿主程序完全掌管其中的數據。

            大家都知道,C語言里有幾個特別的數據構造,例如,結構體,共用體等,這個userdata 類型其實就滿足結構體傳值的功能的數據類型,至少我現在是這樣理解的..至于元表我還沒有接觸,暫時將userdata 類型等同于一個只讀類型.

            Lua 中有三類變量:全局變量,局部變量,還有 table 的域。 其實今天大多的時候都花費在字符串里,但是一種語言來說,字符也是一個很重要的重點,例如C#基本提供了每個類都是 ToString()方法,C語言,單獨用一章介紹字符串,數據結構里也獨立一個章專門說字符串,所以這個字符串是在我們日常開發中經常用到的,對它理解得深其實是有好處的...今天就到這里

            明鏡臺
            posted on 2009-05-12 00:20 ^喬喬^ 閱讀(4695) 評論(3)  編輯 收藏 引用 所屬分類: Lua學習筆記

            FeedBack:
            # re: lua學習之入門(二)----基礎語法1
            2009-05-12 08:07 | resile
            看了,很不錯,但有些地方有失誤,希望樓主改進啊!就是那個命名規則,不能以數字開頭,你寫成了不能……  回復  更多評論
              
            # re: lua學習之入門(二)----基礎語法1
            2009-05-12 12:26 | 梁喬峰
            @resile

            謝謝,昨晚寫的匆忙,很多錯誤字,還有些地方說錯了,我基本讀了一次,作出了一些更改...希望問題少點  回復  更多評論
              
            # re: lua學習之入門(二)----基礎語法1
            2015-12-16 10:44 | 峰,少白
            高中如何學習?
              回復  更多評論
              
            囯产精品久久久久久久久蜜桃| 国产精品青草久久久久福利99| 日韩人妻无码一区二区三区久久99| 国产精品久久久久久五月尺| 亚洲人成伊人成综合网久久久 | 久久久久99精品成人片| 久久综合久久伊人| 精品久久8x国产免费观看| 久久久人妻精品无码一区| 久久人人爽人人爽人人AV东京热 | 久久久久香蕉视频| 亚洲精品乱码久久久久久自慰| 品成人欧美大片久久国产欧美| 久久无码中文字幕东京热| 国产精品va久久久久久久| 无码人妻久久一区二区三区免费丨 | 久久国产精品77777| 亚洲精品高清一二区久久| 亚洲精品高清国产一久久| 欧美大香线蕉线伊人久久| 久久亚洲AV无码西西人体| 亚洲成人精品久久| 国产三级久久久精品麻豆三级 | 久久久久久亚洲精品成人| 亚洲&#228;v永久无码精品天堂久久 | 久久综合九色综合网站| 国产成人无码精品久久久久免费| 久久婷婷激情综合色综合俺也去| 久久亚洲日韩看片无码| 午夜视频久久久久一区| 久久99精品久久久久久不卡| www.久久热.com| 麻豆精品久久精品色综合| 国产精品久久99| 伊人色综合久久天天| 久久精品国产亚洲一区二区| 精品999久久久久久中文字幕| 国产精品美女久久久久网| www.久久热.com| 久久99精品九九九久久婷婷| 久久亚洲精品无码观看不卡|