第一百三十九章 真正深入了解NBT-5
好消息!我们已经只剩下“数组”这个数据类型了!
[字符]
字符串(String)
[数值]
{整形}
字节型(Byte:B)
短整型(Short:S)
整型(Int:I)
长整型(Long:L)
{浮点型(小数)}
单精度浮点型(Float:F)
双精度浮点型(Double:D)
[数据]
复合标签(Combr /ound)
列表(List)
[数组]
字节型数组(Byte Array:[B])
整型数组(Int Array:[I])
长整型数组(Long Array:[L])
看上面的列表,我们就可以知道,数组类型一共有三个:
字节型数组(Byte Array:[B])
整型数组(Int Array:[I])
长整型数组(Long Array:[L])
当然,在了解之前,我们得先来了解一下“数组”是什么意思。
其实很容易理解:数组,就是指几个数字组合在一起。
这就简单了,加上这三个名字前分别带有“字节型、“整型”、“长整型”,我们就知道了这三个数组到底是个什么鬼东西:
字节型数组:几个字节型值组合在一起。
整型数组:几个整型值组合在一起。
长整型数组:几个长整型值组合在一起。
三个数组的基本就是这样。这时候,我们就可以进入下一阶段了:
它们三到底长啥样?
我们知道,列表数据类型的作用就是将几个数据类型相同的数据集合在一起,如:
{time:[2020,12,21]}
而数组,刚才上面讲过了:几个数字组合在一起。
我们可以把几个数字看成“几个数据类型相同的数值”,那么就变成了:
将几个数据类型相同的数值集合在一起
对比一下,你就会发现:数组不就是数据类型为字节型、整型或长整型的列表嘛!
所以我们就可以大胆猜测,数组是长这样子的:
[<数值1>,<数值2>,<数值3>.......](如:[2020,12,21])
猜的可以,但并不是全部的真相。
我们在讲数值数据类型时,经常提到四个字:类型字母。而现在我们讲到了集数值和列表为一体的数组,那是不是也有类型字母呢?
答案是肯定的。所以实际上的数组格式,是这样子的:
[<类型字母>;<数值1>,<数值2>,<数值3>.......]
举个例子,比如数据类型为字节型的数组:
[B;11,45,14]
不难发现,决定类型字母的就是该数组的数据类型。只不过之前我并没有提到整形的类型字母,但相信大家不难猜出来,因为:
整型(Int:I)
所以整形的类型字母就是:I。
按理说这一章到这里也就完了,但如果有细心的人,或许会提出一个疑问:
那么后面的数值需要填上类型字母吗?
答案很简单:不用。
理由也很简单:分配律。
现在我们来举些例子:
一、{time:[I;2020,12,27]}(数据类型为整形)
二、{COVID-19:{America:[L;19433847,11410501,339921,160604]},time:[I;2020,12,27,21,44,54]}(第一个数据类型为长整型,第二个数据类型为整形)
三、{Obr /tions:[B;1,1,0,0,1,1,1,1,1,0,0,1,0,1]}(数据类型为字节型)
OK本章就到这里了。
......
......
......
哦对了,请记住一点:数组里的类型字母后面那个符号是分号(;)而不是冒号(:)!