标签:style class code ext color width
直接上代码
1: -- 第2章 类型与值
2: -- 动态类型的语言,每个值都携带自身类型信息
3: print("类型打印,每个值都携带自身类型");
4: print(type("Hello world")); -- string 完全采用8位编码,字符可以具有任何数值编码,可以将任意二进制数据存储到字符串中
5: --[[
6: string是不可变值,不能像C一样修改一个字符创中某个字符,而是应该
7: 创建一个新的字符串;
8: 和其他对象一样,都是自动内存管理机制所管理的对象。可以用单、双引号来界定
9: --]]
10: -- 用新变量(b)保存修改a变量的后的值
11: a = "one string"
12: b = string.gsub(a, "one", "another");
13: c = ‘ou string‘;
14:
15: print(a);
16: print(b);
17: print(c);
18:
19: --[[
20: 应该坚持使用一种类型的引号,除非字符创本事包含引号
21: 下面我们来测试集中转移字符
22: --]]
23: mean = "abc\acc";
24: print(mean);
25: print("one line\nnext line\n in quotes")
26: print("one line\bnext line\bb");
27:
28: --用双方括号匹配字符创
29: page = [[
30: <html>
31: <head>
32: <title>AN HTML PAGE</tile>
33: <body>
34: <a href="http://www.lua.org">Lua</a>
35: </body>
36: </head>
37: </html>
38: ]]
39: print(page);
40: -- [[ 编程[==[, ‘=‘数量任意,这样只有遇到]==]同样的结束标示才会结束
41: -- 这种机制同样适合多行注释标示
42: -- 这种机制是为了解决字符串中可能注释掉代码或者包含和结束标示符一样的符号带来的‘不愉快’
43: print(10 .. 20); -- 1020 自已‘..‘两边的空格,这是必要的
44: --print(type(print(10 .. 20)));-- 这里会导致打印不下去了,为毛呢
45: --print(10 .. "20");-- 效果一样,最好不要依赖他们,这样会给程序带来复杂性
46: -- 使用tonumber tostring 转换stirng 和 number
47: print(#"123");
48:
49:
50: print(type(1000 * 3)); -- number 没有整数,双精度浮点数表示整数时候不会出现四舍五入错误,可以用科学计数法
51: print(type(.3e12)); -- number 科学计数法
52: print(type(print)); -- function
53: print(type(type)); -- function
54: print(type(true)); -- boolean nil false 为假 0都为真
55: print(type(nil)); -- niL
56: print(type(type(x))); -- string 不管x type(x)返回值都是一个string
57: print(type({1, 2, 3})); -- table 实现了“关联数组”:一种具有特殊索引方式的数组,除了nil值,可以使用其他类型的值来索引它。
58: -- table 没有固定大小,可以动态的添加任意数量的元素到一个table中。
59: -- table 是lua中仅有的数据结构机制
60: -- 基于table可以表示 数组,符号表,集合,记录,队列,和其他数据结构
61:
62: a = {};
63: a["x"] = 10;
64: b = a;
65: a = nil;-- b 还在引用table
66: b = nil; -- 没有对象引用table了,这时候lua垃圾收集器会删除table,并复用它的内存
《lua程序设计(第二版)》学习笔记(二),布布扣,bubuko.com
标签:style class code ext color width
原文地址:http://www.cnblogs.com/bibiAndroid/p/3704354.html