切片
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语言引用类型的更多相关文章

  1. Go语言目录

    为什么学习Go语言 第一章 环境搭建 Windows搭建Go语言环境 第二章 Go语言基础 Go语言介绍 Go语言命名 Go语言内置类型和函数 Go语言特殊函数介绍 Go语言运算符 第三章 Go语言程 ...

  2. go语言学习之路三:切片

    前面讲了变量的有关知识,这里对于其他的数据类型就不多作介绍,(和C差不多),因此重点来讨论下切片. 一.切片是引用类型,这里要稍微介绍两个概念:值类型,构造类型和引用类型 1.值类型:是一种由类型的实 ...

  3. Java程序员学C#基本语法两个小时搞定(对比学习)

    对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import ...

  4. [转] Java程序员学C#基本语法两个小时搞定(对比学习)

    Java程序员学C#基本语法两个小时搞定(对比学习)   对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. ...

  5. C#基础教程/适合初学者

    C#基础教程 第一章       C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序.当 ...

  6. [Golang学习笔记] 07 数组和切片

    01-06回顾: Go语言开发环境配置, 常用源码文件写法, 程序实体(尤其是变量)及其相关各种概念和编程技巧: 类型推断,变量重声明,可重名变量,类型推断,类型转换,别名类型和潜在类型 数组: 数组 ...

  7. 03C#数据类型

    C#数据类型 值类型和引用类型区别 在C#语言中,值类型变量存储的是指定数据类型的数据,值类型变量的值(或实例)存储在栈(Stack)中,赋值语句是传递变量的值.引用类型(例如类就是引用类型)的实例, ...

  8. go语言关于值类型和引用类型

    前言:关于值类型和引用类型确实是个比较绕的问题,之前在学校的时候学习C语言的时候,就感觉没有看太懂,后面看java,关于引用也是模模糊糊,这个东西也确实比较抽象,估计好多写了好几年代码的人有也有些迷惑 ...

  9. unity3d脚本语言中的引用类型

    在之前的文文里有说到,值类型和引用类型,那么这会就单独说下引用类型: Unity3D中的C#语言提供了专门的类型来为开发者提供使用C#开发游戏的便利条件: 在该引擎中,使用UnityEngine命名空 ...

随机推荐

  1. dedecms织梦做中英文(多语言)网站步骤详解

    用dedecms织梦程序如何做中英文网站,下面是一个详细的图文教程,希望能帮助到大家. 以下是用dedecms织梦程序制作过的一个5国语言网站,下面开始教程. 一.首先在后台建栏目,有三点需要注意 1 ...

  2. mysql向表中某字段前后追加一段字符串 concat(), trim(), ltrim(), rtrim(), repeat()

    1.mysql向表中某字段后面追加一段字符串:update table_name set field=CONCAT(field, '分隔符', str);//'分隔符',可以为空,也可以省略updat ...

  3. java8学习之自定义收集器实现

    在上次花了几个篇幅对Collector收集器的javadoc进行了详细的解读,其涉及到的文章有: http://www.cnblogs.com/webor2006/p/8311074.html htt ...

  4. 设置apache服务器的访问证书,支持https访问,windows

    windows下载安装openssl http://slproweb.com/products/Win32OpenSSL.html windows证书的生成 安装成功后命令行执行 1.私钥,生成的文件 ...

  5. JAVA》eclipse——(二)Tomcat

    一.进入www.apache.org网页(注:图中所有箭头都依据从左到右,从上到下的规则) 二.向下拉网页,然后如下图操作 三.进入之后,在网页的左边选择想要的Tomcat版本 四.选择与本机相同系统 ...

  6. Python2和Python3中列表推导式的不同

    Python2和Python3中列表推导式的不同 python2 >>> x = 'my girl' >>> lst = [x for x in 'hello'] ...

  7. rgb三基色与rgba

    主要解释什么是三基色和RGBA ㈠三基色含义 三基色是指红,绿,蓝三色,人眼对红.绿.蓝最为敏感,大多数的颜色可以通过红.绿.蓝三色按照不同的比例合成产生. ㈡三基色原理 ⑴自然界中的绝大部分彩色,都 ...

  8. 51 Nod 1086 多重背包问题(单调队列优化)

    1086 背包问题 V2  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有N种物品,每种物品的数量为C1,C2......Cn.从中任选若干件放 ...

  9. Centos6.6 安装Mysql集群

    一.环境准备 1.1系统IP设置 准备三台服务器安装Centos6.6 64位操作系统,IP地址及角色分配如下: Node                 IP Address            ...

  10. R_Studio(关联)使用apriori函数简单查看数据存在多少条关联规则,并按支持度降序排序输出

    查看数据menu_orders.txt文件存在多少条关联规则,并按支持度降序排序输出 #导入arules包 install.packages("arules") library ( ...