Lua基本语法(第一部分)

1、输出语句为 print 

2、lua语句省略分号

3、注释

1.单行注释 --

2.多行注释 --[[......]]

       或者 --[[......]]--

       或者 --[[......--]]

4、lua 当中的简单数据类型有四种

nil number string boolean

lua中所有变量会自动申明变量类型 不需要手动申明

nil是空类型

所有的数值都是number类型

字符串使用单引号或者双引号接收,lua中没有char类型

例: a = nil

        a = 1

        a = "1" 或 a = '1'

        a = true

5、lua中的复杂数据类型有四种(后面表现)

function table userdata thread

6、type()函数可以获得变量的类型

type(a)

7、字符串相关

str = "123"

1.获取字符串长度

#str

2.字符串多行打印

(1)print("1\n3")

(2)str = [[1

    2

    3
    ]]

print(str)

3.字符串拼接

(1)print("123" .. "456")

(2)s1 = "11"
    s2 = 22
    print(s1 .. s2)(都是number可以拼接)

(3)print(string.format("我是XXX,我今年%d岁了",18))
    --%d :与数字拼接
    --%a :与任何字符拼接
    --%s :与字符配对

4.类型转字符串

tostring(a)

5.字符串提供的常用公共方法

str = "ABcdefg"
--小写转大写的方法
print(string.upper(str))
print(str)
--大写转小写
print(string.lower(str))
--翻转字符串
print(string.reverse(str))
--字符串索引查找
print(string.find(str,"Cde"))
--截取字符串
print(string.sub(str,3))
print(string.sub(str,3,4))
--字符串重复
print(string.rep(str,1))
print(string.rep(str,2))
--字符串修改
print(string.gsub(str,"Cd","**"))

--字符转ASCII码
a = string.byte("Lua",1)
print(a)
--ASCII码 转字符
print(string.char(a))

8、运算符

1.注意事项:

在lua中没有自增自减

             没有复合运算符

              字符串 可以进行 算数运算符操作 会自动转成number

2.基本运算

print("加法运算".. 1+2)

print("10" + 1)

print("减法运算" .. 1 -2)
print("10" - 1)

print("乘法运算" .. 1 * 2)
print("10" * 2)

print("除法运算" .. 1 / 2)
print("10" / 2)

print("取余运算" .. 1 % 2)
print("10" % 2)

--^ lua中 该符号 是幂运算
print("幂运算" .. 2 ^ 5)
print("10" ^ 2)

3.条件运算符

-- > < >= <= ~=

4.逻辑运算符

and or not lua中 也遵循逻辑运算的 “短路” 规则 取反为not

例:

print(true and false)
print(true and true)

print(true or false)
print(true or true)

print(not true)

print(false and print("123"))

5.位运算符

lua不支持位运算 需要人为实现

6.三目运算符

lua中不支持三目运算符

9、条件分支语句

1.单分支语句

if 条件 then......end

例:

if a > 5 then 
    print("123")
end

2.双分支语句

if 条件 then......else......end

例:

if a < 5 then
    print("123")
else
    print("321")
end

3.多分支语句

if 条件 then......elseif 条件 then......else......end

例:

if a < 5 then
    print("123")
elseif a == 6 then
    print("6")
elseif a == 7 then
    print("7")
elseif a == 8 then
    print("8")
elseif a == 9 then
    print("9")
else
    print("other")
end

4.lua中没有switch语句 需要自己实现

10、循环语句

1.while语句

while 条件 do ...... end

例:

num = 0

while num < 5 do
    print(num)
    num = num + 1
end

2.do while语句

repeat ...... until 条件 (注意:条件是结束条件)

例:

num = 0

repeat
    print(num)
    num = num + 1
until num > 5 --满足条件跳出 结束条件

3.for语句

例:

for i = 2,5 do --默认递增 i会默认+1
    print(i)
end

for i = 1,5,2 do --如果要自定义增量 直接逗号后面写
    print(i)
end

for i = 5,1,-1 do --如果要自定义减量 直接将逗号后面写负值
    print(i)
end

11、函数

两种形式

(1)function 函数名()

    ......

    end

(2)a = function()

    ......

    end

1.无参数返回值

function F1()
    print("F1函数")
end

F1()
--有点类似 C#中的 委托和事件
F2 = function()
    print("F2函数")
end
F2()

2.有参数

function F2(a)
    print(a)
end
F2(1)
F2("123")
F2(true)
--如果你传入的参数 和函数参数个数不匹配
--不会报错 只会补空nil 或者 丢弃
F2()
F2(1,2,3)

3.有返回值

function F3(a)
    return a,"123",true
end

--多返回值时 在前面申明多个变量来接取即可
--如果变量不够 不影响 只接取对应位置的返回值
--如果变量多了 不应 直接赋nil
temp,temp2,temp3,temp4 = F3("1")

4.函数的类型

函数的类型就是function 就是之前提的复杂数据类型之一

可以有type()显示出来

例如:

F4 = function()
    print("123")
end
print(type(F4))

5.函数的重载

重载:函数名相同 参数类型不同 或者参数个数不同

在lua中函数并不支持重载

如果函数同名,默认调用最后一个声明的函数

例:

function F5()
    print("函数重载")
end
function  F5(str)
    print(str)
end
F5()

这里的执行结果为:nil

6.变长参数

变长参数的使用 是用一个表存起来(表后面会提到)

例:

function F6( ... )
    --变长参数使用 用一个表存起来 再用
    arg = {...}
    for i=1,#arg do
        print(arg[i])
    end
end
F6(1,"123",true,4,5,6)

7.函数嵌套

例:

function F7()
    return function()
        print(123)
    end
end
f8 = F7()
f8()

8.闭包

这里的例子实现了改变传入参数的生命周期,具体含义应该进行百度百科,以及各种渠道询问

例:

function F8(x)
    --改变了传入参数的生命周期
    return function(y)
        return x + y
    end
end

f9 = F8(10)
print(f9(5))

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值