2017-03-10 17 views
0

在Small Basic中將數組轉換爲字符串的規則是什麼?在Small Basic中將數組轉換爲字符串的規則是什麼?

b[0] = "b0" 
b[2] = 1 

a[0][0] = "a" 
a[0][1] = 123 
a[1][2] = "True" 
a[1][3] = b 

TextWindow.WriteLine(a) 
'0=0\=a\;1\=123\;;1=2\=True\;3\=0\\\=b0\\\;2\\\=1\\\;\;; 

c[0][0][0] = "a" 
c[0][1][0] = 123 
c[1][2][0] = "True" 
c[1][3][0] = "b0" 
c[1][3][2] = 1 

TextWindow.WriteLine(c) 
'0=0\=0\\\=a\\\;\;1\=0\\\=123\\\;\;;1=2\=0\\\=True\\\;\;3\=0\\\=b0\\\;2\\\=1\\\;\;; 

在上面的轉換示例中,我不明白什麼時候出現反斜槓。

請幫我理解轉換規則嗎?

在此先感謝。

G.Kim

回答

0

在大多數編程語言中,數組是非常有效的,其目的是儘可能快地運行。 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 
相關問題