小白学习之(Lua(02))
来源:互联网 发布:提高php水平 编辑:程序博客网 时间:2024/06/11 10:54
--第二章:
类与值
--Lua中有八中基本类型--nil(空)
--boolean(布尔)
--number(数字)
--string(字符串)
--function(函数)
--userdata(自定义类型)
--thread(线程)
--table(表)
--type(变量):总是返回字符串
--变量没有预定义类型,任何变量都可以包含任意类型的值
--例子:
print(type(a)); -- output --> nil
a = 10;
print(type(a)); -- output --> 10
a = "10";
print(type(a)); -- output --> string
a = 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 --> 5
print(#"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中函数作为第一类值,这表明函数可以存储在变量中,可用通过参数的形式传递给其他函数
-- 还可以作为其他函数的返回值
0 0
- 小白学习之(Lua(02))
- 小白学习之(Lua(01))
- 小白学习之((Lua 03))
- 小白学习之((Lua 04))
- 小白学习之((Lua 05))
- 0基础lua学习(十七)C调用Lua----01小demo
- Redis学习笔记(八)redis之lua脚本学习
- lua学习之--liu.lua
- lua学习(一)
- lua学习(二)
- lua学习(一)
- lua学习(一)
- 学习Lua(2) -- Lua 简单示例
- lua学习(二)----c++调用LUA
- Lua继承(Lua学习一)
- Lua单例(lua学习二)
- LUA学习(一) 初步认识lua
- 0基础lua学习(十八)C调用Lua----02Lua堆栈
- Android 实现圆形图片的几种方法
- IDEA的配置JDK,Tomcat,Maven
- jquery中对表单属性的操作总结
- 起步
- Codeforces Round #398 (Div. 2) -- B. The Queue (贪心+暴力)
- 小白学习之(Lua(02))
- hdu 2669
- java ArrayList 排序
- matlab 实践程序2——批量将seq文件转化为avi文件
- string用法
- elasticsearch在C#中的使用
- A+B
- 浏览器缓存
- spring配置文件