Go语言引用类型
切片
1、切片定义
a) 声明一个切片
var slice []int
var slice = []int{, , }
var slice []int = []int{, , }
b) 通过make来创建切片
var slice = make([]int, )
c) 通过 := 语法来定义切片
slice := []int{}
slice := make([]int, )
slice := make([]int, , )
d) 通过操作数组来创建切片
var array = [...]int{, , , , , , , , , }
var slice []int = array[:]
e) 通过两个冒号创建切片,slice[x:y:z]切片实体[x:y],切片长度len = y-x,切片容量cap = z-x
slice := []int{, , , , , , , , , }
slice := slice[::]
2、切片操作
a) 使用append函数在slice尾部添加数据
var a = []int{, , }
b := append(a, )
b) 使用copy() 函数 copy 在两个 slice 间复制数据,复制长度以 len 小的为准
var a = []int{, , , , }
b := []int{, }
copy(a, b)
容器
1、Map定义
a) 声明一个Map
var m map[int]string
b) 通过make来创建Map
var m1 map[int]string = make(map[int]string, )
var m2 = make(map[int]string, )
c) 通过 := 语法来定义Map
m1 := map[int]string{}
m2 := make(map[int]string, )
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, )
var ch2 = make(chan int, )
ch3 := make(chan int, )
d) 只读channel(chan在<-之后)
var ch1 <-chan int
var ch2 <-chan int = make(<-chan int, )
var ch3 = make(<-chan int, )
ch4 := make(<-chan int, )
e) 只写channel(chan在<-之前)
var ch1 chan<- int
var ch2 chan<- int = make(chan<- int, )
var ch3 = make(chan<- int, )
ch4 := make(chan<- int, )
注意:普通 channel 可以隐式转为只读channel或只写channel;只读channel或只写channel不能转为普通 channel。 2、管道操作
a) channel 写入、读取操作
ch := make(chan int, )
ch <- // 写入chan
value, ok := <-ch // 读取chan
b) channel 关闭操作
close(ch)
注意:向已经关闭的 channel 发送数据会引发 panic 错误
Go语言引用类型的更多相关文章
- Go语言目录
为什么学习Go语言 第一章 环境搭建 Windows搭建Go语言环境 第二章 Go语言基础 Go语言介绍 Go语言命名 Go语言内置类型和函数 Go语言特殊函数介绍 Go语言运算符 第三章 Go语言程 ...
- go语言学习之路三:切片
前面讲了变量的有关知识,这里对于其他的数据类型就不多作介绍,(和C差不多),因此重点来讨论下切片. 一.切片是引用类型,这里要稍微介绍两个概念:值类型,构造类型和引用类型 1.值类型:是一种由类型的实 ...
- Java程序员学C#基本语法两个小时搞定(对比学习)
对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import ...
- [转] Java程序员学C#基本语法两个小时搞定(对比学习)
Java程序员学C#基本语法两个小时搞定(对比学习) 对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. ...
- C#基础教程/适合初学者
C#基础教程 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序.当 ...
- [Golang学习笔记] 07 数组和切片
01-06回顾: Go语言开发环境配置, 常用源码文件写法, 程序实体(尤其是变量)及其相关各种概念和编程技巧: 类型推断,变量重声明,可重名变量,类型推断,类型转换,别名类型和潜在类型 数组: 数组 ...
- 03C#数据类型
C#数据类型 值类型和引用类型区别 在C#语言中,值类型变量存储的是指定数据类型的数据,值类型变量的值(或实例)存储在栈(Stack)中,赋值语句是传递变量的值.引用类型(例如类就是引用类型)的实例, ...
- go语言关于值类型和引用类型
前言:关于值类型和引用类型确实是个比较绕的问题,之前在学校的时候学习C语言的时候,就感觉没有看太懂,后面看java,关于引用也是模模糊糊,这个东西也确实比较抽象,估计好多写了好几年代码的人有也有些迷惑 ...
- unity3d脚本语言中的引用类型
在之前的文文里有说到,值类型和引用类型,那么这会就单独说下引用类型: Unity3D中的C#语言提供了专门的类型来为开发者提供使用C#开发游戏的便利条件: 在该引擎中,使用UnityEngine命名空 ...
随机推荐
- asyncio动态添加任务
asyncio.run_forever()下动态添加任务 方法一.asyncio.run_coroutine_threadsafe(coroutine, loop) 方法二.asyncio.call_ ...
- Java语言基础(3)
1 算术运算符:+,-,*(乘法),/(除法),%(求余数) 1)只有相同类型的数据才可以进行算术运算,经常使用到自动类型转换和强制类型转换,把参与运算的数据转换为同一个类型,然后再进行算术运算. 案 ...
- svn提交报错 解决方法
1.先clean 2.删除 .lock文件 3.update项目 4.先还原文件,然后update 接着commit
- anaconda安装失败
2019.10版本怎么安装都不行换了2018.10安装ok
- 多线程-生产者消费者(synchronized同步)
正解博客:https://blog.csdn.net/u011863767/article/details/59731447 永远在循环(loop)里调用 wait 和 notify,不是在 If 语 ...
- CodeForces - 1209F Koala and Notebook(拆边+BFS)
题意:给定一个n个点m条边的无向图,边权分别为1-m,从起点1出发,每经过一条边就把边权以字符串的形式加入末尾,求到达其他每个点的最小字符串(长度不同的短的更小,否则字典序小的更小). 思路很巧妙,将 ...
- 优秀.NET界面控件DevExpress v19.1.6全新来袭!新改进抢“鲜”看
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- python字典的setdefault的妙用
现在有一个员工字典,类似这样的结构 staff_dic = {"name":"灭霸", "age": 10000, "hobbie ...
- “不是一个有效的Win32应用程序”
造冰箱的大熊猫@cnblogs 2018/10/23 今天在Windows计算机上安装一个应用程序时遇到“不是一个有效的Win32应用程序”错误.原以为是应用程序与操作系统版本兼容问题,或者是应用程序 ...
- MessagePack Java 0.6.X 快速开始指南 - 安装
0.6.x 版本的 MessagePack 已经过期被淘汰了.如果你现在开始使用 MessagePack 话,请不要使用这个版本. 我们再这里保留 0.6.x 版本的内容主要用于参考用途. 最新的 M ...