lua学习笔记(1)
2015-08-08 18:11
441 查看
首先,lua是根据标准C改写而成,在本文中使用的编译器是sublime。编译环境是sublime+quick-cocos2dx3.3
1.全局变量和局部变量
在lua中,局部变量使用关键字 local,并且没有local关键字的变量都是全局变量,无论他在程序的那个位置。
例如:定义一个函数
最后的输出的结果:9,。在这里我们就定义了一个全局变量a,我们是在funa中定义的这个变量,然而在构造函数:function luastudy:ctor()中调用funa然后输出,得到输出结果。
如果将a改为局部变量,则:
2.数据类型
lua中的数据类型有:number,string,function,Boolean。
判断一个数据的类型使用tyoe函数,例如:a=9,print(type(a))
链接两个字符串使用:.. 例如
a,b=3,4//lua中可以这样给多个值赋值,他会自动判断每一个数据的类型
print(a..b)
输出:
34
3.运算符
3.1运算符的优先级:(由高到低)
其中:not是非,~=是不等于
3.2 在lua中++,--这些是没有的,a++这个在lua中只能写成a=a+1。
4.函数
在lua中这样声明一个函数:
function function_name( ... )
-- body
end
4.1声明一个无参数的函数:
function funa( )
-- body
end
4.2声明一个有参数的:
function funb( a,b)
-- body
end
4.3声明一个不确定参数的
function func( ... )
-- body
a,b,c=...
print(a,b,c)
end
然后我们调用这个函数:
func(1,2,3).这样我们在函数func中将1,2,3分别赋值给了a,b,c。然后输出。
4.4声明一个有返回值的函数
function fund( )
-- body
return a
end
//多个返回值
function fune( )
return 1,2,3
end
local a,b,c=fune().在这里我们将1,2,3赋值给a,b,c。
5.分支语句
5.1在lua中的if语句:
if conditions then
--todo
end
5.2 if-else语句:
if conditions then
--todo
else
--todo
end
5.3if-else-if:
if conditions then
--todo
elseif conditions then
--todo
end
注意在中间的语句中elseif中间没有空格.还有就是在lua中没有switch语句.
6.循环语句:
a,b=1,9
6.1while语句:
while a<b do
--todo
print("while:",a)
a=a+1
end
6.2repeat语句相当于do-while语句
repeat
print("repaet:",a)
a=a+1
until a>b
6.3for语句
for i=1,10 do
print(i)
end
这里默认的步长是1,如果不要默认值,则:
for i=1,10,2 do
print(i)
end
这样步长就变成了2.
6.4
在lua中没有continue,只有break。
但是如何实现和continue一样的效果?
for i=1,10 do
repeat
if i==5 then
--todo
break
end
print("i=",i)
until true
end
输出结果:
1.全局变量和局部变量
在lua中,局部变量使用关键字 local,并且没有local关键字的变量都是全局变量,无论他在程序的那个位置。
例如:定义一个函数
<span style="font-size:24px;">function funa( ) a=9--全局变量 end</span>然后在构造函数中调用这个函数,并且输出a:
<span style="font-size:24px;"> funa() print(a)</span>
最后的输出的结果:9,。在这里我们就定义了一个全局变量a,我们是在funa中定义的这个变量,然而在构造函数:function luastudy:ctor()中调用funa然后输出,得到输出结果。
如果将a改为局部变量,则:
<span style="font-size:24px;">function funa( ) local a=9-- end</span>然后再和上面的形式输出,则输出结果是:nil。这个就是lua中的空。
2.数据类型
lua中的数据类型有:number,string,function,Boolean。
判断一个数据的类型使用tyoe函数,例如:a=9,print(type(a))
链接两个字符串使用:.. 例如
a,b=3,4//lua中可以这样给多个值赋值,他会自动判断每一个数据的类型
print(a..b)
输出:
34
3.运算符
3.1运算符的优先级:(由高到低)
^ | |||||
not | - (unary) | ||||
* | / | ||||
+ | - | ||||
.. | |||||
< | > | <= | >= | ~= | == |
and | |||||
or |
3.2 在lua中++,--这些是没有的,a++这个在lua中只能写成a=a+1。
4.函数
在lua中这样声明一个函数:
function function_name( ... )
-- body
end
4.1声明一个无参数的函数:
function funa( )
-- body
end
4.2声明一个有参数的:
function funb( a,b)
-- body
end
4.3声明一个不确定参数的
function func( ... )
-- body
a,b,c=...
print(a,b,c)
end
然后我们调用这个函数:
func(1,2,3).这样我们在函数func中将1,2,3分别赋值给了a,b,c。然后输出。
4.4声明一个有返回值的函数
function fund( )
-- body
return a
end
//多个返回值
function fune( )
return 1,2,3
end
local a,b,c=fune().在这里我们将1,2,3赋值给a,b,c。
5.分支语句
5.1在lua中的if语句:
if conditions then
--todo
end
5.2 if-else语句:
if conditions then
--todo
else
--todo
end
5.3if-else-if:
if conditions then
--todo
elseif conditions then
--todo
end
注意在中间的语句中elseif中间没有空格.还有就是在lua中没有switch语句.
6.循环语句:
a,b=1,9
6.1while语句:
while a<b do
--todo
print("while:",a)
a=a+1
end
6.2repeat语句相当于do-while语句
repeat
print("repaet:",a)
a=a+1
until a>b
6.3for语句
for i=1,10 do
print(i)
end
这里默认的步长是1,如果不要默认值,则:
for i=1,10,2 do
print(i)
end
这样步长就变成了2.
6.4
在lua中没有continue,只有break。
但是如何实现和continue一样的效果?
for i=1,10 do
repeat
if i==5 then
--todo
break
end
print("i=",i)
until true
end
输出结果:
相关文章推荐
- Lua笔记8-模块和包
- lua lpeg
- C++ 和 lua代码互相调用
- Lua协程
- 【转】Lua coroutine 不一样的多线程编程思路
- [转]-Lua协程的实现
- lua table深度colone
- lua 判断字符串中引号,括号是否平衡
- lua 元表与元方法示例
- [转]lua面向对象编程之点号与冒号的差异详细比较
- 用LUA写一个日历
- LUA获取utf8字符串长度
- Lua绑定C++类
- quick-lua 游戏存档 GameState 方式
- 从C调用Lua
- Lua学习笔记(五):面向对象的实现
- 在VS中测试Lua项目
- quick-lua AssetsManager 热更新代码
- 【Lua】coroutine
- lua本学习笔记功能