最近要做機械臂**和實物的程式設計,發現很多都是使用lua這門指令碼語言來進行程式設計控制的,因此就學習了一下,並且寫了幾個入門的小例程,在這裡分享一下。
0.軟體安裝
列印直接使用print語句。注釋使用--,多行注釋用兩個中括號,資料型別有string、number、function、boolean等。
print('hello') --注釋
print('world')
print("hello world!")
--[[
多行注釋
--]]
print("哈哈哈哈")
--資料型別
print(type("hello world!!"))
print(type(10.4 * 3))
print(type(10))
print(type(print))
print(type(type))
print(type(true))
print(type(nil))
print(type(type(x)))
--從鍵盤讀取
io.write("input your name: \n")
name = io.read()
print ("your name is "..name)
2.布林字元和表.lua
lua語言中的變數全部為全域性變數,除非用local宣告才會成為區域性變數。
並且lua語言只把false和nil看做是false。其它都為true,包括數字0,也會看做是true
--lua語言中的變數全部為全域性變數,除非用local宣告才是區域性變數
--lua語言只把false和nil看做是false。其它都為true,0也是true
if 0 then
print(false)
else
print(true)
end--在對乙個數字字串進行算數操作時,lua會嘗試將這個數字字串轉換為乙個數字
print("2" + 6) --8
print("2" + "6") --8
print("2 + 6") --2 + 6
print("2e2" * "6") --1200
--字串長度
print(#"2 + 6") --5
--字串連線
print("a" .. "b") --ab
print(127 .. "158") --127158
--table 表,預設索引從1開始
--table表新增元素時,可以和對應索引一起新增,索引不一定是數字,如果直接新增,table會有預設索引,從1開始,如果先新增2在插入1,預設索引就會到3
a = {}
a["key"] = "value"
print(a["key"], a.key) --當索引為字串是也可以使用後邊這種寫法
a[2] = 10
print(a[2])
table.insert(a, "insert1")
print(a[1])
table.insert(a, "insert3")
print(a[3])
for key, val in pairs(a) do --輸出鍵值對
print(key, val)
end
3.table.lua
lua語言表的操作主要有以下幾個
--基本操作
mytable = {}
mytable[1] = "haha"
mytable = nil --可以釋放表的空間
--table.concat(),輸出乙個列表中的元素連線成的字串
print(table.concat(fruits)) --直接連線
print(table.concat(fruits, ",")) --指定連線字元
print(table.concat(fruits, "", 2, 3)) --指定索引連線
--table.insert和table.remove
--在表的末尾處插入mango
table.insert(fruits, "mango")
print(table.concat(fruits, ","))
--刪除表末尾的mango
table.remove(fruits)
print(table.concat(fruits, ","))
--在索引2處插入mango
table.insert(fruits, 2, "mango")
print(table.concat(fruits, ","))
--刪除索引2處的mango
table.remove(fruits, 2)
print(table.concat(fruits, ","))
--table.sort(),用於表的排序
table.sort(fruits)
print(table.concat(fruits, ","))
4.迴圈.lua
下邊的程式是我抄的例程,但是在我的電腦上執行有問題,goto語句用不了,不知道為什麼
--lua中沒有continue語句,控制迴圈需要使用break和goto指令
for i = 10, 1, -1 do
repeat
if i == 5 then
print("continue code here")
break
endprint(i, "loop code here")
until true
end--goto語句不能用,不知道為啥
for i = 1, 3 do
if i <= 2 then
print(i, "yes continue")
goto=continue
endprint(i, "no continue")
:: continue ::
print(i, 'm end')
end
5.迭代器.lua
pairs可以遍歷表中的所有部分,包括陣列部分和非陣列部分
ipairs只可以遍歷表中的陣列部分
下邊程式裡邊那個無狀態的迭代器還是值得研究一下的,可能得多看幾眼,但是也不難
--泛型for迭代器
--pairs可以遍歷表中的所有部分,包括陣列部分和非陣列部分
--ipairs只可以遍歷表中的陣列部分
t =
t["key"] = "edge"
for k, v in pairs(t) do
print(k, v)
endprint()
for k, v in ipairs(t) do
print(k, v)
endprint()
--無狀態的迭代器:無狀態的迭代器指不保留任何狀態的迭代器,在迴圈中可以利用無狀態迭代器避免建立閉包話費額外的代價
function square(iteratormaxcount, currentnumber)
if currentnumber < iteratormaxcount then
currentnumber = currentnumber + 1
return currentnumber, currentnumber * currentnumber
endendfor i, n in square, 3, 0 do
print(i, n)
end
C 語言入門 Demo 例程
本次通過乙個小例程來回顧和整理 c 語言入門 系列的知識點,相信你掌握了這個小例程後,你將進入 c 語言的大門,迎接 c 語言程式設計的大千風情。下面獻上例程,本例程已經上傳至 github。開發環境 visual studio 2017 example 鍵入5個學生的名稱 語文成績 數學成績和英語...
Lua指令碼程式設計 Lua語言入門
lua系統由lua鏈結庫 luac編譯器 lua直譯器三部分構成。lua鏈結庫主要由lua.lib和lua.h這兩個檔案組成。lua鏈結庫主要負責對自身進行初始化及關閉操作 裝載指令碼與執行指令碼 提 供可呼叫互動介面。luac編譯器是乙個由命令列驅動的編譯器,其名稱為luac。當我們需要使用lua...
LUA指令碼語言入門
使用例程 1.函式的使用 以下程式演示了如何在lua中使用函式,及區域性變數 例e02.lua functions function pythagorean a,b local c2 a 2 b 2 return sqrt c2 end print pythagorean 3,4 執行結果 5程式說...