第150章真正深入了解NBT-4 - Minecraft指令手册 - 你好MC - 游戏竞技小说 - 30读书

第150章真正深入了解NBT-4

在前三章,我已经讲完了字符和数值类型的数据类型,现在我们再来看看下表:

[字符]

字符串(string)

[数值]

{整形}

字节型(byte:b)

短整型(short:s)

整型(int:i)

长整型(long:l)

{浮点型(小数)}

单精度浮点型(float:f)

双精度浮点型(double:d)

[数据]

复合标签(compound)

列表(list)

[数组]

字节型数组(bytearray:[b])

整型数组(intarray:[i])

长整型数组(longarray:[l])

按照顺序,接下来就应该到了[数据]这个数据类型了。而里面的这两个:

复合标签(compound)

列表(list)

都是我们已经非常熟悉的数据类型了,因为这两个数据类型特别常见。但神奇的是,它们也经常被忽略。

为何?

因为它们说到底,就是两种符号:

{}——复合标签(compound)

[]——列表(list)

数据可以套娃在它们里面,而多个数据需要用英文半角逗号分割。

只不过,它们两的差别,是不是只有符号和名字的差别呢?

当然不是。

实际上,它们两绝对不是你想的那么简单。

首先,它们两的作用准确的来说是:

复合标签(compound):包含一段独立的nbt标签。如{killname:“mng“,killtime:6000}

列表(list):存储多个类型相同的数据。如{time:[2020,12,21]}。

看起来似乎也没什么不同的地方对吧?

我们知道,一个nbt最外层就是由{}来包裹着的,而里面存储着各个标签,每个标签用英文半角逗号分割。而复合标签也是这样子的,所以,复合标签的作用才这样说:包含一段独立的nbt标签。

如果你看不懂,那也没关系,我们可以通过名字理解。“复合标签”这个名字是由“复合”和“标签”。

“标签”这个词的意思相信大家都知道。那么“复合”又是什么意思呢?

答案很简单:指物体等因某种原因而结合起来

理解了“复合”的意思,再来看看“复合标签”,我们很快就可以理解这个词:

指多个标签结合起来

不得不说,汉语真是博大精深。那么接下来,我们再来看看列表。

上面已经说了,列表的作用就是:存储多个类型相同的数据。翻译这个为人话就是:把多个同样类型的东西统一存储起来。

这就说明了什么?这就说明了列表的“[]”包含的只能是指定类型的数据,实际上还属于值的范围。而{}包含的就不是指定类型的数据了,而是标签!这就是两种数据类型的不同之处。

所以在列表中才不用写数据类型,因为大家都一样。这就像是乘法分配律,把公因数都提取出来,进行简化算式。

现在搞懂这两个的区别了吧?我相信你已经搞懂了。

如果你还不懂,看看上面的两个例子。

好了,相信各位都已经准备好了,那么接下来我们就进入下一阶段。

我们知道,列表可以存储多个类型相同的数据。那么当数据是复合标签时,该怎么办?

很简单,其实这种情况我们已经遇见过很多次了,比如我们最了解的enchantments(/ɛnˈtʃæntmənts/)标签,我们都知道它的格式是这样的:

字体大小
主题切换