天才一秒记住【第一中文网】地址:www.dyzww.cc
看到这个题目,你是不是大吃一惊?Nbt怎么还要重新认识?
别太惊讶。还记得最开始我们接触到Nbt的时候吗?在第五十四章的最后,我指出这其实并不是真正的Nbt,而是mojang专门搞出来给人看的『SNbt』,即『Stringified Nbt』,『字符串化的二进制命名标签』。在之后的章节,我们也重点了解了SNbt,知道了它的格式和使用方法。而现在,我们已经了解并掌握了许多物品和实体的Nbt,这时候,也是时候来认识一下真正的树状结构的Nbt,这样子你才能真正理解接下来的内容。
—————分割线—————
树,是大自然的鬼斧神工。它提供了人类赖以生存的氧气和食物,也给了人类许多灵感。
一棵树,有树根、树干、树叶。它们均发源于一点,我们可以把这一点称为——根(root)。为了方便讲解,我们接下来忽略位于地底下的树根,只看树干和树叶。
树干上有许多分叉点,我们可以把这些分叉点称为——节点(node)。通过节点可以长出一些树叶或新的树干,在新的树干上则又有许多新的节点,分叉出更多的树叶和树干。
一个节点所分叉出的所有树叶和树干,以及这些树干上所有的节点,可以全部视为这个节点的值(value)。你可以这么理解——这些树叶和树干,就是这个节点所存在的价值。如果没有这些树叶和树干,那么这个节点也将不复存在。
这就是一棵树——一颗完全由根、节点和值构成的树!(图158-1)
根其实是一种特殊的节点,它是整个树的开始,所以整个树都可以看作是根的值。
除了根,其他节点都可以取名字。在同一个树干上,每个节点的名字都必须是独一无二的,以防与其他节点弄混。
比如,我们可以给根上面的第一个节点取名『Apple』、第二个节点取名『beluga』。这样子,我们就不容易搞混这两个节点,也可以方便用名称指代这两个节点。
假设第一个节点长出了一条树干,上面也有一个节点,我们给它取名为『cen』。而这个『cen』节点也长出了一条树干,上面也是有一个节点,我们给他取名『Sama』(图158-2)。那么,如果其他人也要寻找『Sama』节点,该如何寻找呢?
假设其他人只知道这个节点叫『Sama』然后去寻找它,在节点很多的情况下这无疑是大海捞针。而且有可能在不同树干上的其他节点也叫『Sama』。这时候该怎么办?
我们来看一个现实生活中的情景:
你此时正在学校里上课,老师要求你将书翻到这节课要讲的『第三模块第五单元第一课』。你肯定是先找到『第三模块』,然后找到『第五单元』,最后找到『第一课』。老师不可能只告诉你『翻到第一课』,因为每个单元都有自己的第一课。老师这样说,让你得知了『第一课』的路径(path),于是你才找到了这节课要讲的『第一课』。
回到上面的问题,答案已经十分明显了——那位要寻找『Sama』节点的,应该去询问得知『Sama』节点具体位置的人,比如我们。然后我们应该将『Sama』节点的路径告诉他,也就是:
Apple.cen.Sama
这就是『Sama』节点的路径。如你所见,一个路径就是『节点.节点.节点』的形式,从左往右的节点指出了一条从根开始通向终点节点的具体道路(图158-3)。
路径既然可以用来找到节点,那么他们应该也就能够表示节点,乃至于表示这个节点的值。毕竟『一个节点』只对应『一条路径』,『一条路径』也只对应『一个节点』
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!