复合标签(Compound)
列表(List)
[数组]
字节型数组(Byte Array:[B])
整型数组(Int Array:[I])
长整型数组(Long Array:[L])
我们从字符串(String)这个最简单的类型入手。众所周知,字符串类型的值其外层需要使用英文的半角双引号(““)来包括。当引号里的值要写上引号时,就需要使用转义符号(\)放在引号前面转义。要在里面写上反斜杠(\)时也一样。比如:
{text:“我叫\“小明\“,这是反斜杠:\\“}
你知道吗?其实NBT的字符串并不一定需要使用双引号来包括,单引号也可以,只不过这是1.14版本才更新的:
{text:'我叫\'小明\',这是反斜杠:\\'}
如上面这个例子,要在值里面写上单引号,也是需要使用转义符号(\)的。
而这个字符串还远远不止那么简单。字符串的存储上线是个字节,可以含有中文、空格和特殊字符,编码形式为UTF-8。所以这就是为什么命令方块其字符上限就是,因为这就是字符串类型的值上线了。
只不过我们都知道,就连最基础的汉字也要占用2字节的空间,而UTF-8作为万国码,存储的字符就更多了。所以UTF-8的基础汉字一个就是3字节,而字符串的上限是字节,并不是个字符。所以更准确的来说,命令方块的储存上限是:
字节(UTF-8编码)
而不是个字符,这种说法是错误的。
总之,字符串的特性就是:
1.值大小上限为字节
2.使用UTF-8编码
3.文本可含有中文、空格和特殊字符
4.需用双引号(““)或单引号('')(1.14版本及以后)包裹。
5.如需要在文本里写上引号或反斜杠,需在其前面加上转义符号(\)
本小章还未完,请点击下一页继续阅读后面精彩内容!
然后是我们的数值:
{整形}
字节型(Byte:B)
短整型(Short:S)
整型(Int:I)
长整型(Long:L)
{浮点型(小数)}
单精度浮点型(Float:F)
双精度浮点型(Double:D)
可以发现,NBT的数值细分到了整数和浮点数(小数)。我们先从整数入手,整数类型的类型有:
字节型(Byte:B)
短整型(Short:S)
整型(Int:I)
长整型(Long:L)
实际上这些都是存储整数。它们的明显差别只不过是名字的不同和数值上下限的不同。
最小的字节型(Byte:B),其值是存储一个绝对值很小的整数,范围是:
-128~127「-(2?)~2?-1」
很简单对吧?
其实不简单。在第一节的最后,作者提到特定类型的值还有可填可不填的格式。这个字节型就是其中之一,其格式其实是这样的:
{Byte:数值b}
没错,字节型的值需要你在填完数值之后再加上一个特定的字母,通常是这个类型其英文缩写的小写形式,比如字节型的Byet缩写就是B,再小写一下就是b。
为什么要这样呢?其实这就是起到一个区分的作用,实际上你不在最后面写b也是可以的,游戏大部分情况会自动帮你加上去。当出现错误时可能才需要用到。短整型和长整型以及其他的一些类型也是数值后面有类型字母的,当然大部分情况它们不填也是可以的。