Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

Lua 一站式学习(1)基础知识

$
0
0

安装好Lua之后就可以进行Lua脚本的编程学习了。

1.终端执行lua test.lua就是执行test.lua脚本;

2.终端执行lua -i test.lua  执行问test.lua之后就会进入交互模式;

3.在交互模式中运行dofile(”test.lua“)就可以运行test.lua.一种常用的编辑模式就是左边开一个调试窗口,启用lua的交互模式用dofile运行程序,另一边开一个编辑器编辑.lua文件;

4.lua是大小写敏感的;

5.“--”是单行注释,多行注释的话就要像下面这样:

--[[
print(10)
-- no action (comment)
--]]

6.在lua中引用未初始化的值是允许的,它返回的是nil;

7.只要在全局的部分声明一个变量,它就是全局变量了,如果要销毁一个全局变量,直接赋值为nil就可以了;

8.通过等号表达式可以把lua当计算机用,比如:

> =math.log10(1000)
3
> =math.pi
3.1415926535898
> =math.sin(3.14)
0.0015926529164868
> 

9.数据类型

lua有下面的几种数据类型:

> print(type("Hello world"))
string
> print(type(10.4*3))
number
> print(type(print))
function
> print(type(type))
function
> print(type(true))
boolean
> print(type(nil))
nil
> print(type(type(X)))
string

其中Nil类型的变量只可能有一个值,就是nil。

另外Boolean只有两个值,true和false。在条件判断中,除了false可以代表“否”,nil也可以代表“否”,其余的所有值都只能代表true,包括0.比如:

> if 0 then
print("0 is true!")
end
0 is true!

10.number类型的特点:

没有整型,只有实型,在Lua中一个Number类型可以代表任何具有32比特的整形而没有舍入错误。

11.String类型的特点:

自动分配内存,初始化之后不可改变。

Lua在管理长的字符串方面非常有效。


12.类型转换

自动类型转换会发生在number和string类之间,例如当string和number之间进行数值运算的时候,string会自动转换成number类型,当然是在可以转换的情况下。

> print("10+1")
10+1
> print("11"+1)
12
> print("11"*1.2)
13.2
> 

显示的类型转换有tonumber和tostring,例如:
> a="10"
> print(a)
10
> print(type(a))
string
> b=tonumber(a)
> print(type(b))
number
> print(b)
10
> c=tostring(b)
> print(type(c))
string
> print(c)
10
> print(#c)
2

print(#c)是指打印字符串c的长度。


13.Table

Table是Lua中最重要的数据类型了。

Table可以用作普通数组,符号表,集合,记录,队列...

所有table都可以用不同类型阿的索引来访问value,当需要容纳新条目时,table会自动增长。

引用table中未被初始化的元素时,返回nil,将nil赋予table的某个元素时,就是删除该元素。

table通常以1作为索引的起始值。

下面是一个简单的例子,获得table中的最小值:

a={}
for i=1,5 do
	a[i]=io.read()
end
min=a[1]
for i=1,#a do
	if min>a[i] then
		min=a[i]
	end
end
print("min:")
print(min)



作者:qp120291570 发表于2013-1-14 16:23:34 原文链接
阅读:27 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>