Lua學習筆記
1.求子字串
D:\lua53>lua53 Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio > s="123456" > s 123456 > string.sub(s,1,3) 123 > string.sub(s,-1,3) --如果引數2為負數,提供引數3則返回空串 > string.sub(s,-1,1) > string.sub(s,-1) 6 > string.sub(s,-2,1) >
2.多變數賦值
> R,C,T,W={},{},{},{} --定義表 > id=0 > for r=1,4 do >> for c=1,3 do >> if r+c <=5 then >> R[id],C[id],T[id],W[id]=r,c,r+c-1,(1<<id); --賦值 >> print(R[id],C[id],T[id],W[id]) >> id=id+1 >> end >> end >> end 1 1 1 1 1 2 2 2 1 3 3 4 2 1 2 8 2 2 3 16 2 3 4 32 3 1 3 64 3 2 4 128 4 1 4 256
3.表的下標
> x={} > x[1]=1 > x[2,2]=1 stdin:1: ']' expected near ',' > x={} > x[{2,2}]=1 --用字面表做下標,可以賦值 > x table: 00495ec0 > x[1] nil > x[{2,2}] --用字面表做下標,返回空值 nil > x[2] nil > x[2]=x[2]+1 --空值不能做加法運算 stdin:1: attempt to perform arithmetic on a nil value (field '?') stack traceback: stdin:1: in main chunk [C]: in ? > x[2]=1 > x[2] 1 > a={1,2} --把字面表賦給一個變數 > a table: 0049c508 > x[a]=1 > x[a] --用變數表做下標,可以返回值 1 > x[{1,2}] nil > b=a --賦給另一個變數 > x[b] 1 > c --未定義的變數是空值 nil > c=nil > c==nil --空值可以做相等比較 true > n==nil --未定義的變數也可以 true
4.表的遍歷和長度
> PW={} > for s=1,id do --start >> for e=1,id do --end >> for m=1,id do --mid >> if (R[s]==R[e] and C[e]-C[s]>1 and R[m]==R[s] and C[m]>C[s] and C[m]<C[e]) or >> (C[s]==C[e] and R[e]-R[s]>1 and C[m]==C[s] and R[m]>R[s] and R[m]<R[e]) or >> (T[s]==T[e] and R[e]-R[s]>1 and T[m]==T[s] and R[m]>R[s] and R[m]<R[e]) then >> tm={s,e} >> if PW[tm]==nil then >> PW[tm]=(1<<m); >> else >> PW[tm]=PW[tm]+(1<<m); >> end >> end >> end >> end >> end > PW table: 00495d58 > x={1,2} > PW[x] nil > x={1,3} > PW[x] nil > next(PW) --表中第一個值 table: 0049d688 32 > #PW --不是列表的表沒有長度 0 > print(next(PW)) table: 0049d688 32 Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio > w={} > id=0 > for r=1,4 do >> for c=1,3 do >> id=id+1 >> t={r,c} --t是臨時表 >> w[t]=id --每個作下標的表都是臨時的 >> end >> end > > for r=1,4 do >> for c=1,3 do >> t={r,c} >> print(t,w[t]) >> end >> end table: 0059fc78 nil --重新建立的表,不是同一個 table: 0059fca0 nil table: 0059fd68 nil table: 0059a938 nil table: 0059a9b0 nil table: 0059aa78 nil table: 0059ab40 nil table: 0059ac30 nil table: 0059acf8 nil table: 0059ad98 nil table: 00436e78 nil table: 00436f18 nil > w1={} > t1={1,2} > w1[t1]=10 > w1[t1] 10 > id 12 > t2=t1 > t1=nil --作下標的物件後銷燬 > w1[t2] --還能訪問 10 > t2=nil --作下標的物件先銷燬 > t3={1,2} > w1[t3] --不能訪問 nil > w={} > id=0 > for r=1,4 do >> for c=1,3 do >> id=id+1 >> t=r*10+c --數字下標是持久的 >> w[t]=id >> end >> end > > for r=1,4 do >> for c=1,3 do >> t=r*10+c >> print(t,w[t]) >> end >> end 11 1 12 2 13 3 21 4 22 5 23 6 31 7 32 8 33 9 41 10 42 11 43 12
4.表必須通過賦給另一個表變數才能相等,常量表不等,帶有變數的也不等
r=1 c=3 print({r,c}~={1,3}) print({r,c}) a={r,c} b={r,c} print(a==b) print({1,3}~={1,3}) 輸出---- true table: 0071ade0 false true
相關文章
- Lua 學習筆記(上)筆記
- Lua學習筆記(一)筆記
- Lua5.3學習筆記筆記
- lua課程學習筆記筆記
- 熱更新語言--lua學習筆記筆記
- Lua學習筆記--物件導向(三)筆記物件
- Lua學習筆記--迭代器和協程(二)筆記
- Redis學習筆記(三)使用Lua指令碼實現分散式鎖Redis筆記指令碼分散式
- Redis基礎知識(學習筆記21--Lua 指令碼語言)Redis筆記指令碼
- numpy的學習筆記\pandas學習筆記筆記
- Redis基礎知識(學習筆記21--Lua 指令碼語言2)Redis筆記指令碼
- IT學習筆記筆記
- 學習筆記筆記
- lua 學習總結
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- Elasticsearch學習筆記Elasticsearch筆記
- Scala學習筆記筆記
- MySql學習筆記MySql筆記
- jQuery 學習筆記jQuery筆記
- react學習筆記React筆記
- 學習筆記(4.3)筆記
- 學習筆記(4.4)筆記
- 學習筆記(3.29)筆記
- 學習筆記(4.1)筆記
- AOP學習筆記筆記
- AspectJ學習筆記筆記
- 學習筆記(3.27)筆記
- 學習筆記(4.2)筆記
- golang 學習筆記Golang筆記
- Zookeeper學習筆記筆記
- 學習筆記(3.24)筆記
- 學習筆記(3.25)筆記
- 學習筆記(3.21)筆記
- GitHub學習筆記Github筆記
- jest 學習筆記筆記
- typescript 學習筆記TypeScript筆記
- Echarts學習筆記Echarts筆記