婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua腳本語言概述

Lua腳本語言概述

熱門標簽:武漢外呼防封系統多少錢 清朝地圖標注哈爾濱 地圖標注大廈 冀州市地圖標注 新岸線智能電銷機器人 漳州智云呼電話機器人 怎么去除地圖標注 個人怎么在地圖標注需要的店鋪 百度地圖標注早餐區域

Lua是什么

Lua是一中嵌入式的腳本語言。

Lua語言可以獨立進行編程,但這不是其主要的使用方式。Lua雖然有動態、靈活的語法提供強大的功能,但并不像 Java、Python 等一樣有一個完善的庫(但仍存在一定數量的第三方庫),這不是缺陷,而是和其定位有關。

Lua最典型的用法,是作為一個庫,嵌入 到其他大型語言(稱之為宿主語言 )的應用程序之中,為應用程序提供參數配置或邏輯描述等功能,帶來前所未有的靈活性。

Lua常見的宿主語言有:C/C++,Java,.NET,甚至腳本語言如PHP,Ruby等。Lua與宿主語言的交互方式:宿主語言通過虛擬機調用Lua腳本中的變量和函數;Lua調用宿主語言中的變量和函數。

Lua語言的特性

-----就是8大數據類型

1.動態語言,可控的垃圾收集,支持數值、字符串、布爾、nil簡單類型的基本運算
2.以哈希表為基礎,以原型的方式,構建復雜的數據結構,和支持面向對象
3.支持宿主語言中自定義的數據類型的操作
4.將函數作為普通數據類型,支持詞法定界、尾遞歸
5.通過協程的方式支持并發程序設計

Lua的使用范圍

lua除了編寫魔獸世界的插件,還能做什么?可以用lua來寫一些常用的程序,比如操作excel,比如定制一些查找。還可以把lua作為一種配置方式(類似ini文件或者cfg文件),因為 lua的表,可以達到非常復雜的配置功能,另外lua的解析速度要比xml快多了。當然lua主要用處還是作為游戲的腳本支持語言。

Lua的基本內容

八種數據類型:nil,booleans,numbers,strings,table(表),functions(函數),userdata,threads(協程)

1.數值(number):內部以double表示=====》算術運算符(+,-,*,/,^(冪),%),關系運算符(>,,=,>=,==,~=)====》數學庫
2.字符串(string):總是以零結尾,但可以包含任意字符(包括零),因此并不等價于C字符串,而是超集===》連接運算符====》string庫
3.布爾(boolean):只有true,false兩個值------>邏輯運算符(and,or,not)。在控制結構的條件中除了false和nil為假,其他值都為真。所以Lua認為0和空串都是真。
4.函數(function):Lua的關鍵概念之一。不簡單等同于C的函數或函數指針。
5.表(table):異構的Hash表。Lua的關鍵概念之一。
6.userdata:用戶(非腳本用戶)定義的C數據結構。腳本用戶只能使用它,不能定義。
7.線程(thread):Lua協作線程(coroutine),與一般操作系統的搶占式線程不一樣。
8.nil:代表什么也沒有,可以與C的NULL作類比,但它不是空指針。

復制代碼 代碼如下:

print(type("Hello world")) --> string
print(type(10.4*3)) --> number
print(type(type)) --> function
print(type(true)) --> boolean
print(type(nil)) --> nil
--變量沒有預定義的類型,每一個變量都可能包含任一種類型的值。
print(type(a)) --> nil ('a' is not initialized)
a = 10
print(type(a)) --> number
a = "a string!!"
print(type(a)) --> string
a = print -- yes, this is valid!
a(type(a)) --> function

表達式:算術、關系、邏輯、連接運算符
流程控制:ifthenelse,while,repeat,for,
核心:函數(函數閉包),表(元表),線程(協作線程)
數據結構:數組,矩陣和多維數組,列表,隊列和雙向隊列,集合和包,字符串緩沖。
標準庫:數學庫,string庫,IO庫,操作系統庫,Debug庫

Lua虛擬機

Lua虛擬機內部有一個堆棧,Lua API提供了對其的操作,不僅有出入棧操作,還可以以數組的形式,通過索引值隨機讀寫棧元素,這是雙方交換數據的主要方式。

用宿主語言可以編寫供Lua調用的函數,宿主語言需要遵守調用約定,從棧中取得參數,最后也將結果入棧。將宿主函數通過lua_register注冊入Lua虛擬機(這一過程實質為向Lua語言添加全局變量),就可以被Lua語言所調用。

宿主語言也可以將Lua函數壓棧,再將參數依次壓棧,最后使用lua_call,完成對Lua函數的調用。

若Lua虛擬機堆棧里有N個元素,則可以用 1 ~ N 從棧底向上索引,也可以用 -1 ~ -N 從棧頂向下索引,一般后者更加常用。

堆棧的每個元素可以為任意復雜的Lua數據類型,堆棧中沒有元素的空位,隱含為包含一個“空”類型數據。

您可能感興趣的文章:
  • Lua腳本語言簡介
  • Lua腳本語言簡明入門教程

標簽:臺灣 天門 德宏 儋州 天門 宣城 金昌 濰坊

巨人網絡通訊聲明:本文標題《Lua腳本語言概述》,本文關鍵詞  Lua,腳本,語言,概述,Lua,腳本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua腳本語言概述》相關的同類信息!
  • 本頁收集關于Lua腳本語言概述的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 分宜县| 石林| 江油市| 文成县| 西城区| 奇台县| 诸暨市| 鄱阳县| 正蓝旗| 盐城市| 鹰潭市| 乌什县| 眉山市| 犍为县| 杭锦后旗| 葵青区| 武功县| 高阳县| 长宁县| 林芝县| 湟源县| 丰镇市| 吴桥县| 改则县| 金沙县| 东宁县| 扶风县| 琼结县| 海南省| 芦溪县| 隆德县| 香河县| 田东县| 桐庐县| 苍南县| 安图县| 浦北县| 龙门县| 孟村| 工布江达县| 嵊泗县|