博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go语言引用类型
阅读量:4316 次
发布时间:2019-06-06

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

切片    1、切片定义          a) 声明一个切片
        var slice []int         var slice = []int{
1, 2, 3} var slice []int = []int{
1, 2, 3}
b) 通过make来创建切片
        var slice = make([]int, 10)
c) 通过 := 语法来定义切片
        slice := []int{}        slice := make([]int, 10)         slice := make([]int, 10, 10)
d) 通过操作数组来创建切片
var array = [...]int{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9} var slice []int = array[2:8]
e) 通过两个冒号创建切片,slice[x:y:z]切片实体[x:y],切片长度len = y-x,切片容量cap = z-x
slice := []int{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9} slice := slice[2:6:8]
2、切片操作          a) 使用append函数在slice尾部添加数据
var a = []int{
1, 2, 3} b := append(a, 4)
b) 使用copy() 函数 copy 在两个 slice 间复制数据,复制长度以 len 小的为准
var a = []int{
1, 2, 3, 4, 5} b := []int{
100, 200} copy(a, b)
容器    1、Map定义          a) 声明一个Map
        var m map[int]string
b) 通过make来创建Map
var m1 map[int]string = make(map[int]string, 10)            var m2 = make(map[int]string, 10)
c) 通过 := 语法来定义Map
m1 := map[int]string{}            m2 := make(map[int]string, 10)
2、Map增删改查操作
        m := map[string]string{
"key0": "Linux", "key1": "Python"}
a)增
        m["key2"] = "oldboy"
b)查
        value, ok := m["key0"]
c)删
        delete(m, "key1")
d)改
        m["key1"] = "Golang"
注意:Map可以使用len()函数,但不能使用cap()函数 管道 1、Channel定义          a) channel声明
var ch chan int            var ch chan string            var ch chan map[int]string
b) 使用make定义,无缓冲channel
var ch1 chan int = make(chan int)            var ch2 = make(chan int)            ch3 := make(chan int)
c) 使用make定义,有缓冲channel
var ch1 chan int = make(chan int, 10)            var ch2 = make(chan int, 10)            ch3 := make(chan int, 10)
d) 只读channel(chan在<-之后)
var ch1 <-chan int            var ch2 <-chan int = make(<-chan int, 10)            var ch3 = make(<-chan int, 10)            ch4 := make(<-chan int, 10)
e) 只写channel(chan在<-之前)
var ch1 chan<- int            var ch2 chan<- int = make(chan<- int, 10)            var ch3 = make(chan<- int, 10)            ch4 := make(chan<- int, 10)
注意:普通 channel 可以隐式转为只读channel或只写channel;只读channel或只写channel不能转为普通 channel。    2、管道操作          a) channel 写入、读取操作
ch := make(chan int, 1)            ch <- 99            // 写入chan            value, ok := <-ch  // 读取chan
b) channel 关闭操作
close(ch)             注意:向已经关闭的 channel 发送数据会引发 panic 错误

 

转载于:https://www.cnblogs.com/ywjfx/p/10385876.html

你可能感兴趣的文章
表达式求值-201308081712.txt
查看>>
centos中安装tomcat6
查看>>
从Vue.js窥探前端行业
查看>>
学习进度
查看>>
poj3368 RMQ
查看>>
“此人不存在”
查看>>
github.com加速节点
查看>>
解密zend-PHP凤凰源码程序
查看>>
python3 序列分片记录
查看>>
Atitit.git的存储结构and 追踪
查看>>
atitit 读书与获取知识资料的attilax的总结.docx
查看>>
B站 React教程笔记day2(3)React-Redux
查看>>
找了一个api管理工具
查看>>
Part 2 - Fundamentals(4-10)
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
CentOs7安装rabbitmq
查看>>
(转))iOS App上架AppStore 会遇到的坑
查看>>
解决vmware与主机无法连通的问题
查看>>