go语言快速入门:数据类型使用例(5)
发布日期:2021-06-30 20:24:08 浏览次数:2 分类:技术文章

本文共 2525 字,大约阅读时间需要 8 分钟。

在上篇文章中学习了go语言基本数据类型的使用方式以及8种复合类型中的指针/数组/构造体,在这篇文章中将继续学习剩下5种的使用方法。

Slice切片

相比于前面讨论过的长度不可改变的数组,Slice可以理解为对数组的抽象后提供的使用灵活功能强大的书录类型。切片的长度是不固定的,可以追加元素。

例子代码

[root@liumiaocn goprj]# cat basic-slice.gopackage mainimport "fmt"func main() {        //def & init 1        s1 := []float32{1.1, 2.2, 3, 4, 5}        fmt.Println("s1 = ", s1)        //def & init 2        s2 := s1[2:4]        fmt.Println("s2 = ", s2)        //def & init 3        s3 := s1[:4]        fmt.Println("s3 = ", s3)}

执行结果

[root@liumiaocn goprj]# go run basic-slice.gos1 =  [1.1 2.2 3 4 5]s2 =  [3 4]s3 =  [1.1 2.2 3 4][root@liumiaocn goprj]#

Map

例子代码

[root@liumiaocn goprj]# cat basic-map.gopackage mainimport "fmt"func main() {        var map_hostip map[string]string        map_hostip = make(map[string]string)        map_hostip["host31"] = "192.168.32.131"        map_hostip["host32"] = "192.168.32.132"        map_hostip["host33"] = "192.168.32.133"        map_hostip["host34"] = "192.168.32.134"        fmt.Println("map_hostip = ", map_hostip)        fmt.Println("map_hostip[host31] = ", map_hostip["host31"])}[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-map.gomap_hostip =  map[host33:192.168.32.133 host34:192.168.32.134 host31:192.168.32.131 host32:192.168.32.132]map_hostip[host31] =  192.168.32.131[root@liumiaocn goprj]#

interface 和 func

例子代码

[root@liumiaocn goprj]# cat basic-interface.gopackage mainimport "fmt"type person struct {        id      int        name    string        country string}type interface_person interface {        introduction()}func (this *person) introduction() {        fmt.Println("My name is : ", this.name)}func main() {        var liumiao person        liumiao.id = 1001        liumiao.name = "liumiao"        liumiao.country = "China"        fmt.Println("liumiao=", liumiao)        liumiao.introduction()}[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-interface.goliumiao= {
1001 liumiao China}My name is : liumiao[root@liumiaocn goprj]#

通道chan

例子代码

[root@liumiaocn goprj]# cat basic-channel.gopackage mainimport "fmt"func main() {        fmt.Println("function begins ... ")        c := make(chan bool)        go func() {                fmt.Println("func has been called.")                close(c)        }()        <-c        fmt.Println("Completed.")}[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-channel.gofunction begins ...func has been called.Completed.[root@liumiaocn goprj]#

通道是go所特有的数据类型之一,详细地使用方法需要结合通道的长度/容量/单向或双向等才能更好地理解的这样一种通信手段,在后续的文章中我们将会进一步展开。

转载地址:https://liumiaocn.blog.csdn.net/article/details/54800213 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:go语言快速入门:内建函数(6)
下一篇:go语言快速入门:数据类型使用例(4)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月08日 00时41分18秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章