16371人加入学习
(66人评价)
Lua编程
价格 免费

旧人旧梦旧时光

lua字符串定义 和转义字符

1。定义

‘ ’ “”[[]]

2. 转义字符 

\n换行 \\  \"代表 "

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

逻辑运算符和其他运算符的使用

关系运算符 ==,~=(不等于)   > ,<  >=   <=

 

 

逻辑运算符  and or not

#可以取得表的最大索引 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

lua 中的数学运算符

 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

可变参数

即参数数量是任意多个的

function test(...)--可变参数 需要将参数设置为...

--print(arg)--arg是一个表

local arg={...}

       for k,v in pairs(arg) do

           res=res+v

            end

          print

end

test()

test(3,34)

test()

test(1)

test(1,215,12)

#"werwr"可计算字符串长度

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

function 用法特征总结

 

--[[

修饰符 function函数名 --修饰符即local

方法体

return--可选的 也可以不返回

--]]

 

function max(num1,num2)

   if(num1>num2) then

    return num1

    else

    return num2

     end

end

print(max(1,10))

```````函数可以作为数据赋值  可可以作为参数传递

 

temp=max--把max赋值给temp

myprint=function(param)--这是个匿名函数

print("这个是我的打印函数"..param)

end

myprint(100)

 

function add(num1,num2,printFun)

     res=num1+num2

     printFun(res);

end

add(40,32,myprint)

 

lua里面的函数可以返回多个值

c#只能返回一个值

 

function temp()

return 4,15,23,1

end

res=temp()

print(res)

可变参数

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

lua流程控制

不同条件下执行不同代码

if(布尔表达式)

当不二表达式为true时需要执行的代码

end

else

为false的时候需要执行的代码

end

 

if (布尔表达式) then

--1

elseif(布尔表达式) then--elseif 不要分离开

--2

else

--3

end

 

 

 

 

 

if(0) then--0代表true

print(0)

end

除了false 和nil 全都代表true

if(b) then

print("b不为空")

end

 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

循环嵌套

for i=1,10 do

for j=1,i do

   print(i)

   end

end--从1到10 是几输出几次

 

for i=1 ,10 do

       j=1

     while j<=i do

        print(i)

         j=j+1

      end

end

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

for循环

1数值for循环

for var=start,end ,step dp

循环体

end

var会从 start变化到end 每次变化 step进行

 

默认 step可以不指定 为1

for i=1,10 do

print(i)

end

 

2泛型for循环

tab1={ key1="fsf",key2="dfsf"}

 

for k,v in pairs( tab1) do

print(k,v)

end --相当于foreach

tab2={"fsdfd","sdfe","fsds"}

for k,v in pairs(tab2) do

print(k,v)

end

 

3.repeat

循环体

 until(条件)

 

a=1

repeat

print(a)

a=a+1

until(a>=10)--直到

 

 

 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

循环

while

for

rereat until 相当于 do while

while( 判断条件 必须返回true 或false ) do

循环体

end

 

a=1

while(a<=20) do--1到20

print(a)

a=a+1

end 

while (a<=20) do

    if( a%2==1 )    then

       end

    a=a+1

end

括号推荐加上

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

lua中多个变量的同时赋值

a,b=10,20相当于a=10 b=20

a,b,c=11,87,"rwrt"

a=11

a,b=b,a   a,b交换值-- 

a,b=10,20,30 当右边的值多的时候  多余的会被自动忽略掉

a=10,b=20

a,b,c=10,20 左边的变量多的时候 没有值得变量会被赋值默认的 nil

即 a=10 b=20 c =nil

 

函数返回多个值

function test()

  return 10,20--返回了两个值

end

a=test()--由于只有一个a 接收 所以 会接收到10,20会被忽略掉

print(a)

结果是  10

 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

全局变量 局部变量

lua中类型可以更改

 

默认是 创建全局变量

 使用local创建局部变量

所在语句块结束后销毁局部变量

 

在lua文件中创建的局部变量 在文件执行完毕之后被释放

在函数中定义的变量 必须要调用函数才能显示变量的值  否则为nil

do

end就是一个代码块

do

local a=10

print(a,b)

b=11

一般来说 局部变量比全局变量的速度快

建议尽量使用局部变量

 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

协程

 

在lua里thread表示的是协程 

 

[展开全文]
没有什么大不了 · 2017-09-26 · 该任务已被删除 0

旧人旧梦旧时光

 

lua 方法可以返回任何 类型 参数也可以为任何类型

 

function fact(n)

      if n==1 then

         return n ;

      else

       return n*fact(n-1);

        end

end

 

调用

print(fact(5));

 

 

赋值

fact2=fact

相当于把fact方法赋值给 fact2

[展开全文]
没有什么大不了 · 2017-09-25 · 该任务已被删除 0

旧人旧梦旧时光

table不会固定大小 可以动态 添加

 

 

修改表中数据d 直接覆盖就好

 

lua中 索引并不会自动向前移

注意 在表中的删除 会造成索引的不连续

 

删除整个表   tab=nil

释放内存

[展开全文]
没有什么大不了 · 2017-09-25 · 该任务已被删除 0

旧人旧梦旧时光

table

{  }构造表达式

table={ }

tab2=(key1=100,key2="dsfwe" )--初始化一个表 

访问表 中的值

print(tab.key1)

print["key1"]

 

tab3={"rewr","rewr","sfdawr2","waerw"}

访问表中的值  print{tab3[2]}

索引从1开始 

 

for key ,val in pairs(tab3) do

//循环体

 

print(key..":"..val)

end 

[展开全文]
没有什么大不了 · 2017-09-25 · 该任务已被删除 0

string 双引单引都可以

string 

str1=“傻瓜”

str2="dfwiwe"

分号可加可不加

一行有多个的话则需要加括号

html=-[[

efdsaggdeg

fdgrg

dfe

]]

一块儿字符串

+ 做运算用的

..连接字符串

#计算字符串的长度

ptint(#str2)

#计算字节

[展开全文]
没有什么大不了 · 2017-09-25 · 该任务已被删除 0

科学记数法

 

e相当于10

 

一个中文字符占两个字节

[展开全文]
没有什么大不了 · 2017-09-25 · 该任务已被删除 0

if true then

print(true)

end

if nil then

print("nil被当作true处理")

else

print("nil被当作false处理")

end

[展开全文]
没有什么大不了 · 2017-09-25 · 该任务已被删除 0

lua中+只能是运算作用不可以使用字符串连接。

..才是lua中字符串连接

[展开全文]
祖宗 · 2017-09-21 · 该任务已被删除 0

 - -[[]] 是注释

[展开全文]
祖宗 · 2017-09-21 · 该任务已被删除 0

授课教师

SiKi学院老师

课程特色

图文(1)
下载资料(1)
视频(64)