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"}”这样的方式直接定义。


分享到:


相關文章: