首页 > 学院 > 开发设计 > 正文

小白学习之(Lua(02))

2019-11-08 02:40:48
字体:
来源:转载
供稿:网友

--第二章:

类与值

--Lua中有八中基本类型--nil(空)--boolean(布尔)--number(数字)--string(字符串)--function(函数)--userdata(自定义类型)--thread(线程)--table(表)--type(变量):总是返回字符串--变量没有预定义类型,任何变量都可以包含任意类型的值--例子:PRint(type(a)); -- output --> nila = 10;print(type(a)); -- output --> 10a = "10";print(type(a)); -- output --> stringa = false;print(type(a)); -- output --> boolean--这是合法的在Lua中函数是作为”第一类值“来看待可以像操作其他值一样来操作他a = print;print(type(a));  -- output --> function--string--Lua的字符串是不可变的值,而是根据修改来创建一个新的字符串--例子:a = "one string";b = a.gsub(a, "one", "tow");print(a); -- output --> "one string"print(b); -- output --> "tow string"--字面字符串需要用一对双引号或者单引号来界定a = "one"print(a); -- output --> "one"b = 'one'print(b); -- output --> "one"--在一个字符串上运用算数操作符时Lua会尝试将一个字符串转化为数字--Lua也会尝试将数字转为字符串--例子:--".."是字符串操作符使用来连接2个字符串 前后必须用空格分开print(10 .. 20); --output 1020--如果将字符串转化为数字请使用 tonumber(); 当无法正常转换时返回nil (在C和C++中是 atoi();)--如果将数字转化为字符串请使用 tostring(); 当无法正常转换时返回nil (在C和C++中是 itoa();)--Lua5.1中,在字符串前面加上“#”,可以返回字符串的长度--例子:a = "hello";print(#a); -- output --> 5print(#"good/0bye"); -- output -->8 (/0占一个字符位)--现在看一个Lua极为重要也是仅有的一个数据类型table(表)--table在Lua中不是值也不是变量,而是对象--创建表(通过构造表达式建立)a = {}; --创建一个表并将他的引用存储在a中k = "1";a[k] = 10; -- key = 1, value = 10--table永远是匿名的--Lua的for循环(包括5,步长为1)for i = 1, 5, 1     do         a[i] = i * 2;        print(a[i]);     end;--可以将nil赋给table的某个元素表示删除某个元素--语法糖:b.y 和 b["y"]一样(很怪异的语法,b打点是调不出y的,只能调出x但是却可以用)    b = {};x = "y";y = "yy";b[x] = 100;b[y] = 1000;print(b["y"]);print(b.y);print(b.yy);--Lua中数组通常以1为索引的初始值for i = 1, #a, 1    do        print(a[i]);    end--function--Lua中函数作为第一类值,这表明函数可以存储在变量中,可用通过参数的形式传递给其他函数-- 还可以作为其他函数的返回值
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表