首頁 游戲

Minecraft指令手冊

第一百三十八章 真正深入了解NBT-4

Minecraft指令手冊 你好MC 1400 2020-11-22 21:01:02

  在前三章,我已經(jīng)講完了字符和數(shù)值類型的數(shù)據(jù)類型,現(xiàn)在我們再來看看下表:

  [字符]

  字符串(String)

  [數(shù)值]

  {整形}

  字節(jié)型(Byte:B)

  短整型(Short:S)

  整型(Int:I)

  長整型(Long:L)

  {浮點型(小數(shù))}

  單精度浮點型(Float:F)

  雙精度浮點型(Double:D)

  [數(shù)據(jù)]

  復合標簽(Compound)

  列表(List)

  [數(shù)組]

  字節(jié)型數(shù)組(Byte Array:[B])

  整型數(shù)組(Int Array:[I])

  長整型數(shù)組(Long Array:[L])

  按照順序,接下來就應該到了[數(shù)據(jù)]這個數(shù)據(jù)類型了。而里面的這兩個:

  復合標簽(Compound)

  列表(List)

  都是我們已經(jīng)非常熟悉的數(shù)據(jù)類型了,因為這兩個數(shù)據(jù)類型特別常見。但神奇的是,它們也經(jīng)常被忽略。

  為何?

  因為它們說到底,就是兩種符號:

  {}——復合標簽(Compound)

  []——列表(List)

  數(shù)據(jù)可以套娃在它們里面,而多個數(shù)據(jù)需要用英文半角逗號分割。

  只不過,它們兩的差別,是不是只有符號和名字的差別呢?

  當然不是。

  實際上,它們兩絕對不是你想的那么簡單。

  首先,它們兩的作用準確的來說是:

  復合標簽(Compound):包含一段獨立的NBT標簽。如{killname:“MNG“,killtime:6000}

  列表(List):存儲多個類型相同的數(shù)據(jù)。如{time:[2020,12,21]}。

  看起來似乎也沒什么不同的地方對吧?

  我們知道,一個NBT最外層就是由{}來包裹著的,而里面存儲著各個標簽,每個標簽用英文半角逗號分割。而復合標簽也是這樣子的,所以,復合標簽的作用才這樣說:包含一段獨立的NBT標簽。

  如果你看不懂,那也沒關系,我們可以通過名字理解?!皬秃蠘撕灐边@個名字是由“復合”和“標簽”。

  “標簽”這個詞的意思相信大家都知道。那么“復合”又是什么意思呢?

  答案很簡單:指物體等因某種原因而結合起來

  理解了“復合”的意思,再來看看“復合標簽”,我們很快就可以理解這個詞:

  指多個標簽結合起來

  不得不說,漢語真是博大精深。那么接下來,我們再來看看列表。

  上面已經(jīng)說了,列表的作用就是:存儲多個類型相同的數(shù)據(jù)。翻譯這個為人話就是:把多個同樣類型的東西統(tǒng)一存儲起來。

  這就說明了什么?這就說明了列表的“[]”包含的只能是指定類型的數(shù)據(jù),實際上還屬于值的范圍。而{}包含的就不是指定類型的數(shù)據(jù)了,而是標簽!這就是兩種數(shù)據(jù)類型的不同之處。

  所以在列表中才不用寫數(shù)據(jù)類型,因為大家都一樣。這就像是乘法分配律,把公因數(shù)都提取出來,進行簡化算式。

  現(xiàn)在搞懂這兩個的區(qū)別了吧?我相信你已經(jīng)搞懂了。

  如果你還不懂,看看上面的兩個例子。

  好了,相信各位都已經(jīng)準備好了,那么接下來我們就進入下一階段。

  我們知道,列表可以存儲多個類型相同的數(shù)據(jù)。那么當數(shù)據(jù)是復合標簽時,該怎么辦?

  很簡單,其實這種情況我們已經(jīng)遇見過很多次了,比如我們最了解的Enchantments(/?n?t??ntm?nts/)標簽,我們都知道它的格式是這樣的:

  {Enchantments:[{id:<魔咒id:String字符串>,lvl:<級數(shù):Int整形>}]}

  可以發(fā)現(xiàn),這里就出現(xiàn)了[{}]這種組合。如果你細心觀察,你就會發(fā)現(xiàn):列表里每項復合標簽里的標簽名稱、格式都是完全一樣的。

  這說明了什么?這就說明了如果列表的項是復合標簽,那么每個復合標簽里的格式、標簽名稱都是完全一樣的。

  這很簡單對吧?

  實際上到此為止,關于復合標簽和列表這兩項數(shù)據(jù)類型就已經(jīng)講完了。

  ........

  但此時,仍然有一個未解之謎:

  我們知道,列表的項可以有很多。那么列表的項數(shù)到底有沒有上限呢?

  答案很簡單:在沒有明確規(guī)定列表的格式時,列表的項數(shù)理論上是無上限的。(明確規(guī)定列表格式的,比如在第一百三十二章講到的ArmorDropChances)

  只不過在實際操作過程中,列表還是有上限的:硬件。

  嗯.......這可真是對了那句話:硬件決定上限,軟件決定下限。

  OK那么這一章就到這里了,我們下一章再見。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南