源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结

  • 时间:2020-05-26 02:42 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
[b]Arrays:数组[/b] 在go语言中数组array是一组特定长度的有序的元素集合。
[url=http://blog.golang.org/2011/01/go-slices-usage-and-internals.html]这篇文章[/url],输看看Go团队是如何在go中设计和实现slices的。 [b]Maps:键值对[/b] Maps是Go语言中的关联数据类型(在其它语言中有时会被称之为哈希表[hashes]或字典[dicts])
[u]复制代码[/u] 代码如下:
package main import "fmt" func main() {     //使用内置的make来合建一个空的map,make(map[键类型]值类型)     m := make(map[string]int)     //设置键/值对使用经典的 name[key] = val 语法。     m["k1"] = 7     m["k2"] = 13     //打印map会输出里面所有的键值对     fmt.Println("map:", m)     //获取某个键的值     v1 := m["k1"]     fmt.Println("v1: ", v1)     //len函数会获取map中键/值对的个数     fmt.Println("len:", len(m))     //使用内置的delete函数从map中移除键/值对     delete(m, "k2")     fmt.Println("map:", m)     //可选的第二返回值可以指出map中是否包含此键的值。避免空值0或""引起的歧义。     _, prs := m["k2"]     fmt.Println("prs:", prs)     //你也可以在一行中完成声明与赋值     n := map[string]int{"foo": 1, "bar": 2}     fmt.Println("map:", n) }
注意当使用fmt.Println打印时map的输出格式为map[k:v k:v]。
[u]复制代码[/u] 代码如下:
$ go run maps.go map: map[k1:7 k2:13] v1:  7 len: 2 map: map[k1:7] prs: false map: map[foo:1 bar:2]
[b]Range:范围[/b] range可以在多种数据结构上进行枚举。让我们看看如何在之前的数据结构上使用。
[u]复制代码[/u] 代码如下:
package main import "fmt" func main() {     //这是我们使用range去求一个slice的和。使用数组跟这个很类似     nums := []int{2, 3, 4}     sum := 0     for _, num := range nums {         sum += num     }     fmt.Println("sum:", sum)     //在数组上使用range将传入index和值两个变量。上面那个例子我们不需要使用该元素的序号,所以我们使用空白符"_"省略了。有时侯我们确实需要知道它的索引。     for i, num := range nums {         if num == 3 {             fmt.Println("index:", i)         }     }     //range也可以用在map的键值对上。     kvs := map[string]string{"a": "apple", "b": "banana"}     for k, v := range kvs {         fmt.Printf("%s -> %s\n", k, v)     }     //range也可以用来枚举Unicode字符串。第一个参数是字符的索引,第二个是字符(Unicode的值)本身。     for i, c := range "go" {         fmt.Println(i, c)     } } $ go run range.go sum: 9 index: 1 a -> apple b -> banana 0 103 1 111
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部