成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個關于Lua腳本管理器詳解

移動開發(fā) iOS
lua里沒有工程的概念,所以文件是最小單位,這樣一來腳本文件數(shù)量的增長會帶來一個問題,名字污染。lua里定義的變量默認是全局的,只有使用了local定義的才是本地的

Lua腳本管理器詳解是本文要介紹的內(nèi)容,這不是一個文本編輯器或者ide之類的東東,實際上它只是一個dll,lua是膠水語言,這個管理器的目的是為了讓C/C++更好的支持lua

通常項目里管理腳本的方法都是分開文件存放,lua里沒有工程的概念,所以文件是最小單位,這樣一來腳本文件數(shù)量的增長會帶來一個問題,名字污染。lua里定義的變量默認是全局的,只有使用了local定義的才是本地的,這樣一來你在腳本a里定義的函數(shù)可能和在腳本b里定義的函數(shù)同名,而這完全不會帶來任何錯誤或警告,因為在lua里函數(shù)就是一個值,你可以隨時修改。

導出一個全局函數(shù)Include,它能把其它腳本包含進來,就像C里的#include一樣,實際上它沒有包含任何內(nèi)容進來,只是建立了一個腳本間的關系網(wǎng),每一個腳本是一個頂點,Include建立到達關系。每個腳本是隔離開的,即不同的腳本中的變量是可以同名的,但是是不同的變量,這個通過函數(shù)環(huán)境實現(xiàn)。

關鍵的東西是,優(yōu)先關系,lua里雖然沒有定義變量的語句,但是卻有index和newindex事件,對一組值 取值的時候 t[k] 就觸發(fā)index事件,對一組值 設定值的時候 t[k] = v 就觸發(fā)newindex事件。后者就相當于是定義變量啦,即第一次使用。

index優(yōu)先關系是:local > script > register-table > global,register-table是從C里導出的一些東西的總和,總的原則是越具體的東西越先考慮。首先是找local變量,找不到 就找本環(huán)境中的變量,找不到 就找Include關系能到達的其它腳本中的變量,找不到 就找register-table中的變量,找不到 就找全局變量。

newindex優(yōu)先關系是:local > script(no include) > global,k是local就設置k = v,否則 如果t是table 先rawget(t, k) 找到了就設置值,否則 找global,global中有值就是global 否則就設置script。這里有些混亂,換言之,就是script中和global中不會同時有某個值,global中的值還是會影響到script中的值,也就是說不要定義太多的global值,比如你在腳本中寫:

  1. function print()  
  2. end 

它會認為是global的print,而把它重定義掉。

而實際上你在腳本里是無法定義新的global值的,你定義一個global中沒有的值,它會轉(zhuǎn)為script環(huán)境中的值。除了系統(tǒng)的一些函數(shù),連導出的函數(shù)都不是直接放在global中的,所以一般無法定義新的global值。

好了,給了你限制還要給你靈活性,global中有一個Global函數(shù),它能定義global值,接受1到2個參數(shù),第一個是名字,第二個是初值。你如果對已有global值再調(diào)用它,會給一個錯誤信息,說你重定義了某個值。你可以在一個腳本中這樣寫:

  1. Global("Foo")  
  2. function Foo()  
  3. end 

這樣這個Foo就不是在這個腳本中的函數(shù)了,在其它腳本中不用Include也能訪問。

此外,還在增加其它功能,比如lua序列化,將來還會增加lua的userdata和lua調(diào)試等。寫這個的過程還是學到了很多東西,發(fā)現(xiàn)學lua不用找任何資料,直接上官網(wǎng)查手冊就行了,手冊就只有一頁,很方便。

小結(jié):解析一個關于Lua腳本管理器的內(nèi)容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 網(wǎng)絡轉(zhuǎn)載
相關推薦

2020-04-15 19:31:59

Bitwarden開源密碼管理器

2022-08-09 18:00:26

開源密碼管理器Padloc

2014-04-23 11:11:27

Linux下載管理器uGet

2022-07-14 16:18:32

massCode開源

2011-08-25 16:20:33

Lua腳本變量

2020-08-10 08:26:26

Windows 10Windows微軟

2023-03-27 10:40:09

2018-05-03 12:35:05

Linux命令Pet

2021-11-15 14:42:20

Motrix下載管理器開源

2011-08-31 16:39:06

Lua調(diào)試器

2011-08-24 15:28:02

Lua編譯器解釋器

2009-07-07 16:43:04

2021-03-05 14:02:51

LinuxWindows管理器

2009-12-24 16:01:17

redhat Linu

2022-05-20 10:56:40

HydraPaper壁紙管理器Linux

2012-10-11 10:45:05

Windows Ser

2018-05-08 08:35:34

LinuxDocker 容器管理器

2011-08-24 14:33:14

LUA開發(fā)環(huán)境Decoda

2011-08-25 17:25:55

LUADelphi

2011-08-25 14:03:32

UbuntuLUA安裝
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久国产免费第一页 | 国产精品久久久久久久久久久久久 | 久久久久久久久久久国产 | 99久久久国产精品免费消防器 | 日日碰碰 | 久久国产精品久久久久久久久久 | 波多野吉衣在线播放 | 作爱视频免费看 | 日日操视频 | 一级毛片在线播放 | 红桃视频一区二区三区免费 | 亚洲在线高清 | 亚洲国产精品精华素 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 黑人巨大精品欧美一区二区一视频 | 精品九九九 | 日韩免费视频一区二区 | 日韩av在线免费 | 视频一区二区在线观看 | 情侣酒店偷拍一区二区在线播放 | 麻豆久久久久久久久久 | 亚洲日本欧美日韩高观看 | 一区二区三区在线观看视频 | 国产一区精品 | 亚洲国产成人一区二区 | 四虎影音 | 欧美午夜精品 | 欧美夜夜| 日本网站免费观看 | 四虎影音 | 中文字幕一区二区三区在线观看 | 91九色porny首页最多播放 | 国产精品久久久久久吹潮日韩动画 | 午夜电影福利 | 91在线成人 | 91精品国产一区二区三区香蕉 | 亚洲成年人免费网站 | 欧美日高清视频 | 性欧美xxxx | 久久久久久久久毛片 | 91在线精品一区二区 |