文章分类 -  go

摘要:什么是缓冲信道? 在[上一教程]里,我们讨论的主要是无缓冲信道。我们在[信道]的教程里详细讨论了,无缓冲信道的发送和接收过程是阻塞的。 我们还可以创建一个有缓冲(Buffer)的信道。只在缓冲已满的情况,才会阻塞向缓冲信道(Buffered Channel)发送数据。同样,只有在缓冲为空的时候,才会 阅读全文
posted @ 2022-04-28 20:24 那就凑个整吧 阅读(75) 评论(0) 推荐(0) 编辑
摘要:Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。 Gin框架介绍 Go世界里最流行的Web框架,Github上有24K+star。 基于httprou 阅读全文
posted @ 2022-04-28 20:24 那就凑个整吧 阅读(189) 评论(0) 推荐(0) 编辑
摘要:一 包管理历史 Golang 的包管理一直被大众所诟病的一个点,但是我们可以看到现在确实是在往好的方向进行发展。下面是官方的包管理工具的发展历史: 在 1.5 版本之前,所有的依赖包都是存放在 GOPATH 下,没有版本控制。这个类似 Google 使用单一仓库来管理代码的方式。这种方式的最大的弊端 阅读全文
posted @ 2022-04-28 20:23 那就凑个整吧 阅读(133) 评论(0) 推荐(0) 编辑
摘要:一 Go语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。 Go是静态强类型语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)。 解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。 编译型语言——源 阅读全文
posted @ 2022-04-28 20:23 那就凑个整吧 阅读(397) 评论(0) 推荐(0) 编辑
摘要:将字符串写入文件 最常见的写文件就是将字符串写入文件。这个写起来非常的简单。这个包含以下几个阶段。 创建文件 将字符串写入文件 我们将得到如下代码。 1234567891011121314151617181920212223242526 package mainimport ( "fmt" "os" 阅读全文
posted @ 2022-04-28 20:22 那就凑个整吧 阅读(296) 评论(0) 推荐(0) 编辑
摘要:内存模型介绍 Go语言的内存模型规定了一种规则。这种规则可以保证,在一个goroutine读取某个变量的值,是其他goroutine对同一个变量写入的值。 建议 程序中多个goroutine同时修改相同数据,必须使之能够按序访问。为了按序访问以及保护数据,可以使用channel操作或者其他同步原语例 阅读全文
posted @ 2022-04-28 20:22 那就凑个整吧 阅读(54) 评论(0) 推荐(0) 编辑
摘要:文件读取是所有编程语言中最常见的操作之一。本教程我们会学习如何使用 Go 读取文件。 本教程分为如下小节。 将整个文件读取到内存 使用绝对文件路径 使用命令行标记来传递文件路径 将文件绑定在二进制文件中 分块读取文件 逐行读取文件 将整个文件读取到内存 将整个文件读取到内存是最基本的文件操作之一。这 阅读全文
posted @ 2022-04-28 20:22 那就凑个整吧 阅读(331) 评论(0) 推荐(0) 编辑
摘要:反射是 Go 语言的高级主题之一。 分为如下小节。 什么是反射? 为何需要检查变量,确定变量的类型? reflect 包 reflect.Type 和 reflect.Value reflect.Kind NumField() 和 Field() 方法 Int() 和 String() 方法 完整的 阅读全文
posted @ 2022-04-28 20:21 那就凑个整吧 阅读(28) 评论(0) 推荐(0) 编辑
摘要:什么是 panic? 在 Go 语言中,程序中一般是使用[错误]来处理异常情况。对于程序中出现的大部分异常情况,错误就已经够用了。 但在有些情况,当程序发生异常时,无法继续运行。在这种情况下,我们会使用 panic 来终止程序。当[函数]发生 panic 时,它会终止运行,在执行完所有的[延迟]函数 阅读全文
posted @ 2022-04-28 20:20 那就凑个整吧 阅读(200) 评论(0) 推荐(0) 编辑
摘要:现在简单概括一下本教程讨论的内容: 什么是头等函数? 匿名函数 用户自定义的函数类型 高阶函数 把函数作为参数,传递给其它函数 在其它函数中返回函数 闭包 头等函数的实际用途 什么是头等函数? 支持头等函数(First Class Function)的编程语言,可以把函数赋值给变量,也可以把函数作为 阅读全文
posted @ 2022-04-28 20:20 那就凑个整吧 阅读(56) 评论(0) 推荐(0) 编辑
摘要:什么是信道? 信道可以想像成 Go 协程之间通信的管道。如同管道中的水会从一端流到另一端,通过使用信道,数据也可以从一端发送,在另一端接收。 信道的声明 所有信道都关联了一个类型。信道只能运输这种类型的数据,而运输其他类型的数据都是非法的。 chan T 表示 T 类型的信道。 信道的零值为 nil 阅读全文
posted @ 2022-04-28 20:19 那就凑个整吧 阅读(724) 评论(0) 推荐(0) 编辑
摘要:使用 New 函数创建自定义错误 创建自定义错误最简单的方法是使用 [errors]包中的 [New]函数。 在使用 New [函数]创建自定义错误之前,我们先来看看 New 是如何实现的。如下所示,是 [errors 包]中的 New 函数的实现。 12345678910111213141516 阅读全文
posted @ 2022-04-28 20:19 那就凑个整吧 阅读(44) 评论(0) 推荐(0) 编辑
摘要:什么是字符串? Go 语言中的字符串是一个字节切片。把内容放在双引号””之间,我们可以创建一个字符串。让我们来看一个创建并打印字符串的简单示例。 12345678910 package mainimport ( "fmt")func main() { name := "Hello World" fm 阅读全文
posted @ 2022-04-28 20:18 那就凑个整吧 阅读(419) 评论(0) 推荐(0) 编辑
摘要:什么是方法? 方法其实就是一个函数,在 func 这个关键字和方法名中间加入了一个特殊的接收器类型。接收器可以是结构体类型或者是非结构体类型。接收器是可以在方法的内部访问的。 下面就是创建一个方法的语法。 12 func (t Type) methodName(parameter list) {} 阅读全文
posted @ 2022-04-28 20:18 那就凑个整吧 阅读(194) 评论(0) 推荐(0) 编辑
摘要:什么是包,为什么使用包? 到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数。在实际中,这种把所有源代码编写在一个文件的方法并不好用。以这种方式编写,代码的重用和维护都会很困难。而包(Package)解决了这样的问题。 包用于组织 Go 源代码,提供了更 阅读全文
posted @ 2022-04-28 20:18 那就凑个整吧 阅读(141) 评论(0) 推荐(0) 编辑
摘要:fmt标准库是我们在学习Go语言过程中接触最早最频繁的一个了,本文介绍了fmtb包的一些常用函数。 fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 向外输出 标准库fmt提供了以下几种输出相关函数。 Print Print系列函数 阅读全文
posted @ 2022-04-28 20:17 那就凑个整吧 阅读(79) 评论(0) 推荐(0) 编辑
摘要:下面是 Go 支持的基本类型: bool 数字类型 int8, int16, int32, int64, int uint8, uint16, uint32, uint64, uint float32, float64 complex64, complex128 byte rune string b 阅读全文
posted @ 2022-04-28 20:17 那就凑个整吧 阅读(289) 评论(0) 推荐(0) 编辑
摘要:一 问题背景 当我们使用 go get、go install、go mod 等命令时,会自动下载相应的包或依赖包。但由于众所周知的原因,类似于 golang.org/x/... 的包会出现下载失败的情况。如下所示: 12345 //go get下载包go get -u golang.org/x/sy 阅读全文
posted @ 2022-04-28 20:16 那就凑个整吧 阅读(104) 评论(0) 推荐(0) 编辑
摘要:在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的t 阅读全文
posted @ 2022-04-28 20:16 那就凑个整吧 阅读(21) 评论(0) 推荐(0) 编辑
摘要:Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序 一 Mac 下编译 Linux 和 Windows 64位可执行程序 12345678910 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goCGO_ENABLED=0 G 阅读全文
posted @ 2022-04-28 20:14 那就凑个整吧 阅读(193) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示