boolean/number/string的使用
一)boolean(布尔)
二)number(数字)
三)string(字符串)
一)boolean(布尔)
布尔类型,可选值 true/false;
Lua 中 nil 和 false 为“假”,其它所有值均为“真”。比如 0 和空字符串就是“真”;
local a = true
local b = 0
local c = nil
if a then
print("a") -->output:a
else
print("not a") --这个没有执行
end
if b then
print("b") -->output:b
else
print("not b") --这个没有执行
end
if c then
print("c") --这个没有执行
else
print("not c") -->output:not c
end二)number(数字)
Number 类型用于表示实数,和 C/C++ 里面的 double 类型很类似。可以使用数学函数math.floor(向下取整)和math.ceil(向上取整)进行取整操作。
三)string(字符串)
Lua 中有三种方式表示字符串:
1、使用一对匹配的单引号。例:'hello'。
2、使用一对匹配的双引号。例:"abclua"。
它支持一些转义字 符,列表如下
3、字符串还可以用一种长括号(即[[ ]])括起来的方式定义。整个词法分析过程将不受分行限制,不处理任何转义符。
定义:"add\name",'hello' 字符串
在 Lua 实现中,Lua 字符串一般都会经历一个“内化”(intern)的过程,即两个完全一样的 Lua 字符串在 Lua 虚拟机中只会存储一份。每一个 Lua 字符串在创建时都会插入到 Lua 虚拟机内部的一个全局的哈希表中。
另外,Lua 的字符串是不可改变的值,不能像在 c 语言中那样直接修改字符串的某个字符,而是根据修改要求来创建一个新的字符串。Lua 也不能通过下标来访问字符串的某个字符。
字符串连接使用的是 ..
字符串截取
结果:
字符串与number类型转换
使用 # 来计算字符串的长度,放在字符串前面
注意:string不可修改

根据图可知:
1.当对a重新赋值时,并不是将之前的字符串
this is a替换成this is new a而是新建里一个字符串指向了a。
a,b 的字符串值相同,两个完全一样的 Lua 字符串在 Lua 虚拟机中只会存储一份。
1)在 Lua 实现中,Lua 字符串一般都会经历一个“内化”(intern)的过程,即两个完全一样的 Lua 字符串在 Lua 虚拟机中只会存储一份。每一个 Lua 字符串在创建时都会插入到 Lua 虚拟机内部的一个全局的哈希表中。
2)Lua 的字符串是不可改变的值,不能像在c语言中那样直接修改字符串的某个字符,而是根据修改要求来创建一个新的字符串。Lua 也不能通过下标来访问字符串的某个字符。
Lua的字符串和其它对象都是自动内存管理机制所管理的对象,不需要担心字符串的内存分配和释放。
输出结果
Last updated
Was this helpful?