中文编程入门(Lua5.4.6中文版)第二章 Lua 数据类型 第一节 8 个基本类型

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。

Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

数据类型中文简称描述
nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean是非包含两个值:false和true。
number数字表示双精度类型的实浮点数
string字符字符串由一对双引号或单引号来表示
function函数由 C 或 Lua 编写的函数
userdata用户数据表示任意存储在变量中的C数据结构
thread线程表示执行的独立线路,用于执行协同程序
table表格Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

我们可以使用 type 函数测试给定变量或者值的类型:

数据类型,返回值为英文,为了兼容.

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
输出(类型("世界,你好!"))      --> string
输出(类型(10.4*3))             --> number
输出(类型(输出))              --> function
输出(类型(类型))               --> function
输出(类型(真))               --> boolean
输出(类型(虚))                --> nil
输出(类型(类型(X)))            --> string

nil(虚)
nil 类型表示一种没有任何有效值,它只有一个值 -- nil,
例如打印一个没有赋值的变量,便会输出一个 nil 值:

输出("X的类型为",类型(X))        -->nil
--nil 作比较时应该加上双引号 ":
输出("X的类型==虚",类型(X)==虚)        -->false
输出("X的类型==虚",类型(X)=="虚")        -->true
输出("X的类型=='nil'",类型(X)=="nil")    -->true
输出("X==虚为",X==虚)            -->true

类型(X)==虚 结果为 false 的原因是因为 类型(类型(X))==string。即是字符串,所以它的对比值应该也用字符串即“nil”。


对于全局变量和 table,nil 还有一个"删除"作用,给全局变量或者 
table 表里的变量赋一个 nil 值,等同于把它们删掉,执行下面代码就知:

表1 = { 键1 = "值1", 键2 = "值2", "值3" }
因为 k, v 属于 匹配(表1) 做
    输出(k .. " - " .. v)
结束

输出("设置表1的键1值为虚后")

表1.键1 = 虚
因为 k, v 属于 匹配(表1) 做
    输出(k .. " - " .. v)
结束

输入结果为:

$ lua 表格测试.lua 
1 - 值3
键1 - 值1
键2 - 值2
设置表1的键1值为虚后
1 - 值3
键2 - 值2

已完全可以在5.4.6下实现。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值