Gox語言中的映射類型(字典類型)及其操作-GX4

Gox語言中的映射類型(字典類型)及其操作-GX4

在Gox語言中,是用map類型來表示一般語言中的“字典”(dictionary)概念的,這與Go語言也是一致的。對map的聲明、賦值和其他操作,我們來看看下面的例子。


<code>a = {}

a["Num"] = 3
a[5] = "abc"
a[-1] = true
a["ary"] = [1, "xyz", false]
a[false] = "not true"
a.Item1 = "item 1"

pv("a")

pl("length of a: %v", len(a))
pl("a.Num: %v", a.Num)

a["Num"]++
println(a["Num"])

a[5]*=2
a[5] = a[5] * 3 
println(a[5])

b = map[interface]interface{}

pv("b")

c = map[int]interface{}

c[3] = 3
c[18] = "abc"
c[-198] = true

pv("c")

v, ok = c[18]

if ok {
	println("v:", v)
}

delete(c, 18)

println("c:", c)

_, ok = c["b"]
println(ok)

println("---")

for k in keys(a) {
  println("[", k, "]:", a[k])
}

println("---")

for k, v in a {
	pl("[%v] %v", k, v)
}
/<code>


執行結果是:

Gox語言中的映射類型(字典類型)及其操作-GX4


  • Gox語言中,可以用花括號直接來聲明和建立一個map,也可以用“b = map[interface]interface{}”這樣的方式,注意方括號中不能是interface{}。兩種方式效果是一樣的;
  • 可以用“c = map[int]interface{}”這種方法來指定key的類型,這樣的話,如果以後用“c["a"]”來用字符串作為key來引用c中數據項的話,會導致程序運行報錯;
  • 在一般的map中,索引可以是任何類型的數據,所以代碼開始對變量a以數字(甚至是負數)、字符串、布爾型變量來索引,都可以正常訪問其中的數據項;
  • map中的數值也可以是任意類型,甚至可以是一個數組或者另一個map
  • 刪除map中的某個數據項用delete內置函數;
  • 可以用“v, ok = c[18]”這樣的方式來確認c中是否有索引為18的數值項,如果沒有,ok將是false;“_, ok = c["b"]”這樣的,表示將取到的數值丟棄,只使用ok的值;
  • 遍歷map可以使用for循環;
  • map也可以直接用“a = {"a": 3, "b", "abc"}”這樣的方式直接定義。


分享到:


相關文章: