Go程序设计语言
文章平均质量分 78
Zerore
这个作者很懒,什么都没留下…
展开
-
go mod使用
常用命令:go getgo buildgo installgo rungo testgo list6-2-2-1-16个环境变量: GO111MODULE、GOPROXY、GONOPROXY、GOSUBDB、GONOSUMDB、GOPRIVATE两个概念: Go module proxy和Go checksum database两个主要文件: go.mod和go.sum-一个主要管理命令: go mod一个build flag概念: 包(package)和模块(module)原创 2022-04-16 21:09:38 · 2648 阅读 · 0 评论 -
go程序设计语言第十二章-反射
the go programming language#12.1 为何需要反射一个函数内部对参数x的判断,不能尽然展示出所有类型type。reflect.Type和reflect.Value反射由reflect包提供,有两个重要类型reflect.Type和reflect.Value。一个 Type是一个接口,有很多方法来区分类型以及检查它们的组成部分,如结构体成员或函数参数。type Type interface { // Methods applicable to all types.原创 2021-12-22 17:31:14 · 485 阅读 · 0 评论 -
go程序设计语言第十章-包管理和Go工具
如今一个不太大的程序可能会包含10000个函数。程序的作者只需要考虑其中的一部分,是自己设计的可能会少,因为大多数都是其他人所写的,且能够通过包实现重复使用。Go提供了超过100个标准包。Go社区,一个蓬勃发展的生态,用于包设计、分享、重用和发展,已经发布了很多包。本章,我们将会展示如何使用已经存在的包和创建包。Go也自带了go tool工具,一个用于go包管理的复杂巧妙的但易于使用的命令。本书开头,我们已经展示了如何使用go tool来download、build和run程序。本章中,我们将会看到工原创 2021-12-30 15:47:52 · 587 阅读 · 0 评论 -
go程序设计语言第九章-并发控制
go程序设计语言第九章-并发控制9.1 竞争条件某个函数如果在并发情况下仍然可以正确的工作,则说明它是并发安全的。同样,如果某个类型的所有方法和操作都是并发安全的,则该类型就是并发安全的。我们避免并发访问大多数的类型,无论是将变量局限在一个goroutine内(避免多个goroutine访问同一变量),还是使用互斥条件维持更高级别的不变性,都是为了这个目的。包级别的导出函数一般都是并发安全的,由于package级的变量没法被限制在单一的gorouine中,因此修改这些变量时“必须”使用互斥条件原创 2022-02-25 17:34:17 · 523 阅读 · 0 评论 -
go程序设计语言第八章-goroutine和channel
go程序设计语言第八章-goroutine and channel8.1 goroutinesIn Go, each concurrently executing activity is called a goroutine.If you have used operating system threads or threads in other languages, then you can assumefor now that a goroutine is similar to a thread原创 2022-01-26 17:57:36 · 417 阅读 · 0 评论 -
go程序设计语言第七章-接口类型
The Go Programming Language7 Interfaces7.1 Interfaces as Contracts 接口作为合约之前所讲的都是具体的类型concrete type。一个具体类型规定了它的值的表达形式,暴露内在的操作方法,例如数字的算术运算,slice的index、append、range操作。一个具体的类型通过它的方法也提供了另外的行为。当有一个具体类型的值时,你精确的知道它是什么和它能干什么。还有另外一个类型在go中称为interface类型。它是一个抽象类型ab原创 2021-12-20 18:18:20 · 657 阅读 · 0 评论 -
go程序设计语言第六章-方法
方法methodreceiver pselector 形如p.X或p.Path()go可以让任意类型添加方法,可以为一个named type添加方法,只要它的底层不是指针或接口。当receiver为指针类型时,实例类型调用方法会自动取地址然后调用,这仅限于变量,包括结构体成员,数组成员,slice成员(因为他们都是可寻址的)。当类型T的所有方法的receiver都是T实例而不是指针时,复制此类型实例是安全的。调用它的任何一个方法都是做一个复制。例如time.Duration。但是如果方法中的原创 2022-01-05 16:52:38 · 291 阅读 · 0 评论 -
go程序设计语言第五章-函数
函数函数的类型称为函数签名: func signature。两个函数有相同的参数类型列表和相同的返回结果类型列表,则类型即签名相同。go没有默认参数和带名称参数。函数参数通过值复制,因此函数接收的是每个参数的副本。go的垃圾回收会清理无用的内存,但不会清理系统资源,如打开的文件描述符。在返回值带有name的函数中,return语句可以省略,称为bare return。strings.Contains strconv.FormatBool 不会出现error。一个error类型包含一个stri原创 2022-01-04 18:28:43 · 413 阅读 · 0 评论 -
go程序设计语言第四章-组合类型
SliceA slice has three components: a pointer, a length, and a capacity.slice有三个部分:指针,长度,容量Un like arrays, slices are not comparable, so we cannot use ==to test whether two slices contain the same elements.slice不可比较,不能使用==来测试两个slice是否包含相同的元素。标准库有bytes.原创 2022-01-07 17:19:41 · 464 阅读 · 0 评论 -
go程序设计语言第三章-基本数据类型
第三章 基础数据类型go数据类型分为四种:basic基础:数字、字符串、布尔aggregate复合:数组、结构体reference引用:指针、切片、字典、函数、通道,引用类型中,任一引用类型数据的修改都会影响所有该引用的拷贝。interface接口整形go中数值类型包括几种大小不同的整数、浮点数和复数。每种类型都决定了对应的大小范围和是否支持正负号。有符号整数: int8、int16、int32、int64,分别对应8、16、32、64bit大小的有符号整数,与此对应的是uint8、原创 2022-03-11 20:50:16 · 343 阅读 · 0 评论 -
go程序设计语言第二章-- 程序结构
go程序设计语言第二章-- 程序结构命名与关键字:固定关键字25个break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var预定义关键字内建常量: true false iota nil内建类型: int int8原创 2021-11-23 15:41:26 · 304 阅读 · 0 评论 -
go程序设计语言第一章-入门
Go is a compiled language.Go natively handles Unicode, so it can process text in all the world’s languages.Exercis e 1.3: Experiment to measure the dif ference in running time bet ween our pot ent ial lyinefficient versions and the one that uses strings原创 2022-01-04 11:45:01 · 259 阅读 · 0 评论 -
go程序设计语言-前言
Its facilities for concurrency are new and efficient, and its approach to dat a abstraction and object-oriented programming is unusually flexible.It has automatic memory management or garbage collection.Go项目包括编程语言本身,附带了相关的工具和标准库,最后但并非代表不重要的是,关于简洁编程哲学的宣言。就事原创 2022-01-04 09:38:02 · 496 阅读 · 0 评论 -
golang关于闭包
Golang:“闭包(closure)”到底包了什么?golang 闭包Golang中闭包的理解什么是闭包呢?摘用Wikipedia上的一句定义:a closure is a record storing a function together with an environment.闭包是由函数和与其相关的引用环境组合而成的实体 。因此闭包的核心就是:函数和环境。其实这里就已经可以回答本文题目的问题:闭包究竟包了什么?答案是:函数和环境。但是相信部分看官们到这里依然不清楚:什么函数?什么环境原创 2022-01-07 09:39:40 · 1174 阅读 · 2 评论