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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月08日 00时41分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
pat 城市救援 最短路
2019-04-30
poj 2533 Longest Ordered Subsequence
2019-04-30
poj 1068 Parencodings
2019-04-30
poj 1936 All in All
2019-04-30
hihocoder 1555 四次方根(矩阵快速幂)
2019-04-30
codeforces 449 D Jzzhu and Numbers(容斥+dp)
2019-04-30
hdu 5450 Traversal(状压dp)
2019-04-30
Gym - 101334E Exploring Pyramids(dp+分治)
2019-04-30
uva 10934 Dropping water balloons(dp)
2019-04-30
hdu 6183 Color it(cdq分治+线段树)
2019-04-30
gym 101137 L Lazy Coordinator(概率)
2019-04-30
Mysql 入门
2019-04-30
Vue 之 axios 篇
2019-04-30
vue 之动画
2019-04-30
js的基础语法
2019-04-30
vue使用iconfont
2019-04-30
linux 查看文件夹权限
2019-04-30
linux tar 备份
2019-04-30
ubuntu中配置任意应用的快捷键
2019-04-30