在大多數編程語言中,數組是非常有效的,其目的是儘可能快地運行。 Small Basic不是這種情況。實際上,Small Basic嚴格來說並不具有數組結構。數組存儲爲一個映射,其中一個鍵與其匹配值存儲爲一對。
您通常使用數組作爲這樣的:元[1] = 12
但是你可以很容易地使用它,例如:元[ 「貓」] = 12
的Small Basic的第一個版本甚至不支持方括號[]表示法。您使用Map對象將信息存儲在信息中。爲了向後兼容,Map對象仍然存在。訪問它已經被包裝在一些語法糖中,以使其更傳統。最終結果是非常靈活的,但非常緩慢。
現在,爲了回答您的實際問題...
你們看到的,當你寫了一個數組是你的陣列的地圖存儲是。這些值是成對的。地圖關鍵字,等號和相關地圖值以分號結尾。當你做多維數組時,這個想法是嵌套的。對於二維數組,您可以獲得第一個索引,一個等號,第二個索引,斜線,第二個等號以及相關的值。對於每個添加的索引,您會得到另一個斜槓和另一個分號。當您使用非數字索引時,這很容易看到。
a["cat"] = "hat"
a["shark"] = "bait"
TextWindow.WriteLine(a) 'cat=hat;shark=bait;
b["apple"]["orange"] = "fruit"
b["VW"]["BMW"] = "cars"
TextWindow.WriteLine(b) 'apple=orange\=fruit\;;VW=BMW\=cars\;;
c["hot"]["medium"]["cold"] = "temps"
c["cheese"]["meat"]["vegies"] = "food"
TextWindow.WriteLine(c) 'hot=medium\=cold\\\=temps\\\;\;;cheese=meat\=vegies\\\=food\\\;\;;
這個想法可以反過來。如果你想讓代碼儘可能緊湊,你可以使用字符串加載一個數組。只需按照上面詳細描述的模式,而不是六條不同的線將六個值加載到六個索引中,則可以在一條線上一次完成所有操作:
d = "work=money;stone=cold;"
TextWindow.WriteLine(d["work"]) 'money
TextWindow.WriteLine(d["stone"]) 'cold