【lua】第一章-lua基础(搭建环境,变量语法基础)

从今天开始学习lua,学习的过程大概是lua的基础,lua和高级语言的交互,到在unity里面使用lua

第一章.lua基础

搭建环境


从网上下载luaStudio,有汉化版的。习惯使用vs的人应该会觉得非常的熟悉。
使用步骤:新建项目-新建文件-编码-F5
在第一次调试时,会出现调试设置。第一个要勾选,第二个是选择是否弹出控制台,可选可不选。

lua基础

lua脚本不需要写“;”

1.变量
lua不需要申明变量。在使用过程中可以随意改变它的类型。变量会根据所得到的值来判断自己属于什么类型。这样非常方便灵活,但是在使用的过程中就要小心了。代码量少还好,要是上千然后没有好好管理变量,追查问题时就很痛苦了。

value = 1
value = "helloWorld"
print(value)
--输出"helloWorld"

变量类型有五种:nil,Boolean,string,Number,table。
1.nil 相当于null,意味着为空或没有被赋值。

2.Boolean就是布尔值,只能是true或false。

3.string是字符串。lua的字符串可以容纳到上百万字符。在字符串的值在数值范围内时可以和数值进行直接运算。

value = "10"
value = value + 10
print(value)
--20
value = "hi"
value = value +10
print(value)
--error

4.Number有整数和双精度类型。但是使用的时候基本不需要区分。直接赋值就好。

5.table相当于数组,枚举,结构体。非常强大。

myTable = {}
myTable.name ="XXX"
myTable.id = 0

TablePrint(myTable)--name:XXX,id:0

myTable["id"] = 10
myTable[1] = 20
myTable.cost = {}
myTable.cost["one"] = 1
myTable.cost["two"] = 2

TablePrint(myTable)
--name:XXX,1:20,id:10,cost.one:1,cost.two:2

2.生命周期
变量默认是全局变量,在变量前加上local就是局部变量。局部变量的生命周期在于它存在的位置。这个和高级语言是一样的。

3.运算符
1.加减乘除那就就按正常使用就好了
2.==的使用。在变量是table的情况下要注意,当两个变量是同一个对象的时候才能为真。

tA ={0,1,2}
tB = {0,1,2}
tC = tA
if tA== tB then
    print("tA==tB")
    end
if tA==tC then
    print("tA==tC")
    end
--输出"tA==tC"

3.or和and运算符。nil也会被认为是false。
or是遇到不为false的值就返回,都为false就返回false。
and是有但凡有false就返回false,否则返回第二个的值。

print(1,nil or 10)--10
print(2,10 or nil)--10
print(3,false or nil)--nil
print(4,10 or 2)--10
print(5,2 or 10)--2

print(1,nil and 10)--nil
print(2,10 and nil)--nil
print(3, 2 and 10)--10
print(4,10 and 2)--2

4.控制结构
常见的就是if,for,while,repeat语句。这里就给出常用的示例。

--if语句(if-then-end)
if(1) then
    print("true")
    else
    print("false")
end
--true

--for语句(for-do-end)
for value = 0,10,2 do
    print(value)
end
--0,2,4,6,8,10
for value = 10,0,-2 do
    print(value)
end
--10,8,6,4,2,0
myTable = {11,12}
for key,value in pairs(myTable) do
    print(key,value)
end
--1 11//2 12

--while语句(while-do-end)
value = 1
while value<10 do
    value = value +1
end
print(value)
--10

--repeat语句(repeat-until)
value = 0
repeat
    value = value +2
until value >10
--12

5.函数
1.除了常见参数,lua还支持不定长参数。
2.除了常见返回值,lua还支持多个返回值。

function func(va,vb,...)
    arg = { ... }
    return va,vb,#arg
    --#table等于获取该table的长度
end

print(func(11,12,13,14,15,16))
--11,12,4

6.简单的I/O处理
需要得到地址,然后就能打开文件进行重写。如果该地址本来没有文件的话,就会创建然后再写入内容。

myFile = io.open("D:\\lua.lua","w")--地址和类型
if myFile ~= nil then
    myFile:write("helloWorld")
    io.close(myFile)
end

猜你喜欢

转载自blog.csdn.net/sinat_34870723/article/details/72760488