我的lua 学习

1.  我用的工具是SciTE.     直接在菜鸟教程里下载的, 

2, 安装好之后, 可以把 安装路径配到path 环境变量中,  直接 lua -i 就可以进入交互式编程, 在> 符号后面加上要执行的脚本就可以执行. 例如print("hello world")  不需要分号结尾


3,  print(b)   一个没有初始化的变量是nil, 可以访问不会报错.  在默认情况下,变量总是认为是全局的。nil 就是其他语言中的null 或者false

4.  如果安装lua for windows 的时候要下载 , 然后连接不到服务器的话, 其实只要下载一个 vcredist_x86.exe 就可以了

5, 在SciTE 中写好脚本之后, 必须保存成.lua 文件, 才可以编译, 不然的话就不会出现run 的按钮.

6.  lua 中的方法调用执行语句都不需要写在方法里面.

7, Lua 中的变量默认都是全局变量, 除非自己设置为local 修饰.  就算是function里面也是这样

8, C# 中的foreach 循环在lua 中使 for k,v in pairs(table) do code   end;

9 Lua 中的for 循环for i=1,10 do print(i) end   注意这里是会输出10 的, 表示判断条件是i<=10;

10, lua 中的table 键默认从1 开始,  所以abc ={"henry"}   print(abc[0]) 这个打印出来会是nil

11, lua 中的table 是可以任意增加内容的, 

abc ={"henry"}
abc["love"]=1
print(abc["love"])
print(abc[1]) 

这样也是可以的, 长度会自动增长, 键可以是任意类型

12,  Lua 会自动的在数字和字符串之间进行转换, 但是如果是数字用.. 的功能进行拼接的时候, 记住要在.. 前面加一个空格. 不然报错

13. lua 中的变量交换十分简单,x,y=y,x 这样就可以了,右边会先用真实的值代替x,y 然后赋值给右边

14. lua 中访问局部变量的速度比全局变量快

15, 初始化一个表. table={["henry"=1,[2]=3]}, table= {table=1,[2]=3}

16, 访问表的以字符串为键的值的时候, 可以这样,   table.henry, 或者是table["henry"] 这两种写法都是可以的

17, while 和if 写法如下, while 后面加do, if 后面加 then


18, 多个if 条件写法如下 , 注意elseif 是连接的, 别的语言是分开的, 而且也还是要写then, if 语句也需要用end 结尾


19, lua 中任意数字都可以作为if 的判断, 不过都是true, 只有nil 和false 会是false

20. if 嵌套if 写法如下

21. lua 中要调用别的文件的方法, 先要写require "proj"  代表引用到这个文件的东西. method 这个方法是定义在proj 中的.



22. lua 中方法也可以作为参数传递, 此时不需要require 什么东东, 类似传递方法指针



23. 函数带多个返回值, 写法如下, 直接以逗号隔开就好了, 接收的时候也是这样



24. lua 中用# 符号来获取长度, 包括获取字符串的长度和table 的长度

25, lua 中的函数也可以有可变参数, 形式如下... 代表可变 参数, 在方法中用args 的表来获取这个可变参数


26, 其他语言 中& | ~ 分别对应lua 中的and or not.

27. .. 这样两个点代表字符串拼接

28, lua 中的!=  是~= 这样写法

29. lua 还可以使用[[我爱你]] 这样来表示一个字符串

30, string.gsub(str, sourcestr, replacestr, num)  这个是lua 中的字符串中替换字符串的方法, 如果

31. 查找字符串中符合某个pattern 的字符串, for k in string.gmatch(str) do print(k) end

32, lua 中判断类型的写法是字符串比较, 例如a 是一个字符串 要判断的话就是,    if(type(a) =="string") then do end;


33, lua中方法的参数, 是局部变量, 在外部访问都是nil, 但是方法内部新定义的变量, 如果不是local修饰 都是全局变量



34, lua中的一个.lua 文件实际上, 就是一些变量, 和方法调用, 和一些方法定义,没有写在function 里面的都相当于这个文件的入口, 也就相当于main 方法, 这样理解的话, 就成了每个文件都有一个单独的main方法,  每个文件还可以有返回值,   main方法中的变量是可以在其他function里面用的, main方法中的全局变量, 是在其他文件中都可以访问的, 但是local的就不行, 还有就是这个main方法是从上往下, 如果执行一个在下面定义的方法, 就会报错. nil.


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值