Lua筆記 第一至第八章

2021-06-20 09:34:41 字數 1812 閱讀 4159

**:

-i選項要求lua執行指定chunk後進入互動模式

dofile函式, 連線外部chunk

-l: 載入乙個檔案

-i: 進入互動模式

_prompt 設定乙個標量作為互動模式的提示符

lua -i -e "_prompt=' lua> '"
lua_init環境變數: @filename 表示載入指定檔案. 如無@, 則假定filename為lua**檔案並且執行它

指令碼名索引為0, 引數從1開始增加.

lua -e "sin=math.sin" script a b

arg[-3] = "lua"

arg[-2] = "-e"

arg[-1] = "sin=math.sin"

arg[0] = "script"

arg[1] = "a"

arg[2] = "b"

nil只能和自己相等

通過引用比較tables, userdata, functions, 即僅當兩者表示同乙個物件時相等

比較字串按字母順序比較

元素可以為表示式

初始化乙個表為record

a =             <-->    a={}; a.x=0; a.y=0
不管何種方式建立table, 我們都可以向表中新增或者刪除任何型別的域, 建構函式僅僅影響表的初始化

給元素賦值nil可以移除該元素

每次呼叫建構函式, lua都會建立乙個新的table, 可以使用table構造乙個list

在同乙個建構函式中可以混合列表風格和record風格進行初始化

函式返回值

第二, 范型for迴圈

for i, v in ipairs(a) do print(v) end

另外, 函式呼叫表示式作為函式引數被呼叫的時候, 和多值賦值是相同的

print(foo2())        --> a b

print(foo2(), 1) --> a 1

print(foo2().."x") --> ax

函式呼叫表示式在表建構函式中初始化時, 和多值賦值時相同
a =         -- a = 

a = -- a =

return f()表示返回"f()的返回值", 使用圓括號強制返回乙個值
print(foo2())        --> a b

print((foo2())) --> a

乙個return語句如果使用圓括號將返回值括起來也將導致返回乙個值

函式多值返回的特殊函式unpack, 接受乙個陣列作為輸入引數, 返回陣列的所有元素

使用非遞迴區域性函式是要先定義而後使用

for in do

end

如我們的迭代函式是f, 狀態常量是s, 控制變數的初始值為a0, 則迴圈: a1 = f(s, a0), a2 = f(s, a1), ... 知道 ai = nil

function allwords (f)

for l in io.lines() do

for w in string.gfind(l, "%w+") do

f(w)

endend

end

require的路徑是乙個模式列表, 例如: ?;?.lua;c:\windows\?;/user/local/lua/?/?.lua

路徑模式可以不包含問號, 而只是乙個固定的路勁: ?;?.lua;/usr/local/default.lua

_requiredname儲存被required的虛檔案的名稱

第八章(筆記)

能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...

c primer Plus第八章筆記

該書應從8章之後開始學習 現在開始第8章 p199 字元輸入輸出 緩衝區 是乙個存放內容的臨時儲存區域 為什麼要設定緩衝區 一 將若干個字元作為乙個塊進行傳輸比逐個傳送這些字元耗時少。二 如果輸入了乙個錯的字元,可以用鍵盤的更正功能進行修改。當按下回車鍵的時候就傳送輸入的字元。但是,互動性的程式需要...