`

Go 语言集合(Go中文读书笔记)

 
阅读更多

 

Go 语言中的内构函数,不需要任何引用

 

close new panic complex

closed make recover real

len append print image

cap copy println 

 

close 和closed 用于channel通信和关闭channel

 

len 和cap 可用于不同的类型 len用于返回字符串、slice和数组的长度。

 

new 用于内存分配

 

make 用于内建类型map、slice、channel的内存分配

 

copy 用于复制slice、append 用于追加slice 

 

panic 和recover 用于异常机制的处理。

 

print 和println 是底层打印函数。可以不引用fit包的qing'kuang'x情况下使用

 

complex real 和imag 全部用于处理复数。

 

 

Go集合 array 、slices 和map array 和 slices序列号都是从0开始的,所有计算也是如此。 

 

array 由[n]<type> 定义,n表示array的长度。而<tpye>希望存储的内容的类型。数组的类型和大小是不能改变的。数组同样是值类型的。讲一个数组复制给另一个数组会复制整个数组的所有的元素。尤其是在向另一个数组传递的时候,它会获得一个数组的副本,而不是这个数组的指针。

 

声明一个数组 var a[3]int 如果不使用零来初始化它 则用复合声明 a: = [3]int {1,2,3} 也可以简写为 a := […]{1,2,3}。go语言会自动统计元素的个数。所有的项目必须都指定。

 

当声明一个array时,你必须在方括弧内输入些内容。数字或者三个点(…)

 

slice 与array接近。但是在新的元素假如的时候可以增加长度。slice总是指向底层的一个array。slice是一个指向array的指针,这是一个不同array的地方。slice是引用类型的。这意味着当赋值某个slice到另一个变量。两个引用会指向同一个array。

 

sl := make([]int ,10)

创建一个保存10个元素的slice。需要注意的是底层的array和slice并无不同。slice总是与一个固定的长度array成对的出现。其影响slice的容量和长度。

 

给定一个array或者slice,一个新的slice通过a[I:J]的方式创建。这会创建一个新的slice。指向a。从序列号I开始结束在序号J之前。长度为J-I。

 

a := […]int{1,2,3,4,5} //定义一个array 序列号从0到4;

s1 := a[2:4]  //从序列号2至3创建slice,它包含3,4;

s2 := a[1:5]  //从序列号1至4创建slice,它包含2,3,4, 5;

s3 := a[:] //从序号0至3创建,这是a[0:4]的简化写法,得到1,2,3,4;

s4 := a[:4] //这个是a[0:4]的简化写法。

s5 := a[:]  //从slice s2创建slice,注意这个s5任然指向array a。

 

 

函数append 向slice追加零值或者其他x值。并且返回追加后的新的、与s有相同类型的slice。如果s没有足够的容量存储追加的值,append分配一个足够大的,新的slice来存放原有的slice的元素和追加的值。因此返回的slice可能指向不同底层的array。

 

s0 := []int {0,0} 

 

s1 := append(s0,2)  //追加一个元素,s1 == []int{0,0,2};

 

s2 := append(s1,3,5,7)  //追加多个元素,s2 ==[]int{0,0,2,3,5,7} 

 

s3 := append(s2,s0…) //追加一个slice s3 = []int{0,0,2,3,5,7,0,0} 注意这三个点

 

函数copy从源slice scr复制元素到目标dot,并且返回复制的元素的个数。源和目标可能重叠。复制的数量是len(src)和len(dst)中最小的值。

 

var a = […]int{0,1,2,3,4,5,6,7}

 

var s = make([]int 6)

 

n1 := copy(s,a[0:]) // n1 == 6,s == []int{0,1,2,3,4,5}

 

n2 := copy(s,s[2:]) // n2 == 4,s == []int{2,3,4,5}

 

 

map 可以认为使用ige用字符串做索引的数组(在其简单的形势下)

 

monthdays := map[string]ing {

"Jan":31,"Feb":28,"Mar""31,

"Apr""30,"May":31,Jun:30, //注意结尾必须是逗号。

 

向map增加元素

 

monthdays["Oct"] = 31 //添加一个元素

monthdays["Feb"] = 29 闰年重写这个元素

 

 

检查这个元素是否存在

 

var value int 

 

var present bool 

 

value , présent = monthdays["Jan"] //如果存在,present则有值返回true

 

v,ok := monthdays["Jan"] //"逗号ok标准形式,go语言方式"

 

从map移除元素

monthdays["Mar"] = 0,false 

 

分享到:
评论

相关推荐

    Go 学习笔记——雨痕

    Go语言,又称Golang,是一种静态类型的编程语言,由Google开发,于2007年首次对外公布,并在2009年进行了开源。Go语言的设计哲学是简洁、快速和安全。它支持垃圾回收,具有类型系统和一些并发控制机制。 变量的定义...

    Go 学习笔记 第四版 pdf

    根据提供的信息,我们可以总结出这份文档是关于Go语言学习笔记的部分内容,主要涵盖了Go语言的基础概念、语法结构、数据类型以及并发模型等关键知识点。以下是对这些知识点的详细解析: ### Go语言概述 Go(也称作...

    Go语言实战读书笔记系列合集.zip

    Go语言实战读书笔记系列合集,正如其名,是一份全面涵盖Go语言学习和实践的资料集合,对于想要深入理解Go语言特性和应用的开发者来说,无疑是一份宝贵的资源。 首先,我们来了解一下Go语言的基础知识。Go语言的设计...

    golang development notes go语言开发笔记.zip

    1. **Go语言基础**:Go语言,也称为Golang,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它的设计目标是提高开发效率,强调代码简洁性和可读性。 2. **语法特性**: - **结构体与...

    雨痕golang学习笔记第四版 加上书签版

    《雨痕golang学习笔记第四版 加上书签版》是针对Go语言学习者的参考资料,作者雨痕在书中详细记录了从2012年开始学习Go语言至今的经验与成果。本书内容全面,涵盖了Go语言的基础知识、数据结构、函数特性、并发编程...

    go 语言 入门

    Go语言,通常被称为Golang,是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它具有简洁、快速、安全和现代的特点。Go语言设计团队的初衷是为了让编程更加简单、高效,同时能够应对...

    基于Go语言的学习笔记(附代码)

    Go语言,又称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。本学习笔记主要涵盖了Go语言的基础知识,包括类型、表达式、函数、数据结构、方法、接口、并发以及包管理等...

    go语言笔记.pdf

    Go语言也被称为Golang,其程序编译后的运行速度可以媲美C或C++代码,并且在安全性和并行性方面表现出色。Go语言的设计哲学强调简洁、快速、安全、并行、有趣和开源。在内存管理方面,Go语言提供了垃圾回收机制,并且...

    go学习笔记-文档-文档

    本文档集合了关于Go语言的学习笔记,旨在帮助读者全面理解并掌握Go语言的核心概念、语法特性以及实际应用。 一、基础语法 Go语言的语法简洁明了,易于上手。它采用了C风格的语法,但增加了诸如类型推断(Type ...

    golang-china读书笔记

    ### Go语言基础知识与核心概念 #### Go语言起源与项目背景 - **起源**: Go语言由Google公司的Robert Griesemer、Rob Pike及Ken Thompson三位工程师在2007年开始设计,并于2009年正式发布。 - **目标**: 旨在解决...

    尚硅谷_韩顺平_Go语言核心编程.docx

    Golang(Go语言)是一种开源的编程语言,它以其简洁的语法、高效的性能以及现代软件工程的最佳实践而受到广泛欢迎。在学习Golang时,可以重点关注以下几个方面: - **基础语法**:包括变量、数据类型、控制结构等...

    GoLang学习资源_学习笔记和并发编程实战

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的语言。它设计简洁,语法清晰,尤其适合构建高效、可扩展的网络服务和并发应用程序。本资源集合包含了两个重要的学习材料,帮助...

    Go 学习笔记

    ### Go语言学习笔记知识点梳理 #### 一、Go语言基础 **1.1 变量** - **定义**: 在Go语言中,变量是用于存储数据的基本单元。可以通过`var`关键字来声明变量,或者使用短变量声明`:=`在一行内声明并赋值。 - **...

    go学习笔记

    根据提供的信息,我们可以总结出这份 Go 语言学习笔记主要涵盖了 Go 语言的基础语法、数据结构、并发编程等关键知识点。接下来将对这些知识点进行详细解释。 ### Go 语言概述 Go 语言是一种开源的编程语言,它简洁...

    golang学习笔记资源

    在IT领域,Go语言,又称为Golang,是由Google开发的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程语言。本资源集合是针对Golang的学习笔记,对于初学者和进阶者都是宝贵的资料。我们将深入探讨Golang的...

    GoLang学习笔记1

    在本篇GoLang学习笔记中,我们将探讨Go语言的基础知识,包括类型、变量、常量、自定义类型、基本类型以及复合类型。 1. 类型与变量 在Go语言中,使用`var`关键字来定义变量,并为其分配零值。例如: ```go var x ...

    Go+学习笔记

    Go+学习笔记所包含的知识点涵盖了Go语言的基础知识、编程范式、数据结构、并发处理、标准库使用以及进阶话题等多个方面,详细介绍了Go语言的学习路径和应用实践。 首先,Go语言的基础部分包括变量声明、基本类型、...

    go学习笔记 第四版

    ### Go语言学习笔记知识点概述 #### 一、Go语言简介 - **Go语言起源与发展历程**:Go语言是由Google在2009年发布的一种开源编程语言,旨在提高开发效率和程序性能。从2012年开始,Go语言经历了多个重要版本的迭代...

    go语言学习记录 - 代码学习自《Google资深工程师深度讲解Go语言》.zip

    这个压缩包文件“go语言学习记录 - 代码学习自《Google资深工程师深度讲解Go语言》.zip”显然是一个针对Go语言学习资源的集合,可能包含了从某本由Google资深工程师撰写的书籍中提取出的示例代码和学习笔记。...

    雨痕的GO学习笔记

    - **变量**: Go语言中的变量用于存储数据,必须先声明后使用。Go语言采用静态类型检查,因此在编译时就会确定变量的数据类型。 - **基本类型**: - **整型**: 包括`int`, `int8`, `int16`, `int32`, `int64`等。 - ...

Global site tag (gtag.js) - Google Analytics