摘要: 1. 读取文件 文件读取是所有编程语言中最常见的操作之一。本教程我们会学习如何使用 Go 读取文件。 本教程分为如下小节。 将整个文件读取到内存 使用绝对文件路径 使用命令行标记来传递文件路径 将文件绑定在二进制文件中 分块读取文件 逐行读取文件 将整个文件读取到内存 将整个文件读取到内存是最基本的 阅读全文
posted @ 2024-01-23 10:38 易先讯 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 1. Panic和recover 什么是 panic? 在 Go 语言中,程序中一般是使用错误来处理异常情况。对于程序中出现的大部分异常情况,错误就已经够用了。 但在有些情况,当程序发生异常时,无法继续运行。在这种情况下,我们会使用 panic 来终止程序。当函数发生 panic 时,它会终止运行, 阅读全文
posted @ 2024-01-23 10:37 易先讯 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1. 自定义错误 在上一教程里,我们学习了 Go 中的错误是如何表示的,并学习了如何处理标准库里的错误。我们还学习了从标准库的错误中提取更多的信息。 在本教程中,我们会学习如何创建我们自己的自定义错误,并在我们创建的函数和包中使用它。我们会使用与标准库中相同的技术,来提供自定义错误的更多细节信息。 阅读全文
posted @ 2024-01-23 10:35 易先讯 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 什么是 defer? defer 语句的用途是:含有 defer 语句的函数,会在该函数将要返回之前,调用另一个函数。这个定义可能看起来很复杂,我们通过一个示例就很容易明白了。 示例 package main import ( "fmt" ) func finished() { fmt.Printl 阅读全文
posted @ 2024-01-23 10:35 易先讯 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1. 合取代继承 Go 不支持继承,但它支持组合(Composition)。组合一般定义为“合并在一起”。汽车就是一个关于组合的例子:一辆汽车由车轮、引擎和其他各种部件组合在一起。 通过嵌套结构体进行组合 在 Go 中,通过在结构体内嵌套结构体,可以实现组合。 组合的典型例子就是博客帖子。每一个博客 阅读全文
posted @ 2024-01-23 10:34 易先讯 阅读(5) 评论(0) 推荐(0) 编辑
摘要: Mutex vs 信道 通过使用 Mutex 和信道,我们已经解决了竞态条件的问题。那么我们该选择使用哪一个?答案取决于你想要解决的问题。如果你想要解决的问题更适用于 Mutex,那么就用 Mutex。如果需要使用 Mutex,无须犹豫。而如果该问题更适用于信道,那就使用信道。:) 由于信道是 Go 阅读全文
posted @ 2024-01-23 10:32 易先讯 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 关闭信道和使用 for range 遍历信道 数据发送方可以关闭信道,通知接收方这个信道不再有数据发送过来。 当从信道接收数据时,接收方可以多用一个变量来检查信道是否已经关闭。 v, ok := <- ch 上面的语句里,如果成功接收信道所发送的数据,那么 ok 等于 true。而如果 ok 等于 阅读全文
posted @ 2024-01-23 10:32 易先讯 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 从技术上看并发和并行 通过现实中的例子,我们已经明白了什么是并发,以及并发与并行的区别。作为一名极客,我们接下来从技术的角度来考察并发和并行。:) 假如我们正在编写一个 web 浏览器。这个 web 浏览器有各种组件。其中两个分别是 web 页面的渲染区和从网上下载文件的下载器。假设我们已经构建好了 阅读全文
posted @ 2024-01-23 10:31 易先讯 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 结构体相等性(Structs Equality) 结构体是值类型。如果它的每一个字段都是可比较的,则该结构体也是可比较的。如果两个结构体变量的对应字段相等,则这两个变量也是相等的。 package main import ( "fmt" ) type name struct { firstName 阅读全文
posted @ 2024-01-23 10:31 易先讯 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1. 数组和切片 数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型) 数组的声明1 一个数组的表示形式为 [n]T。n 表示数组 阅读全文
posted @ 2024-01-23 10:30 易先讯 阅读(0) 评论(0) 推荐(0) 编辑
摘要: Go 语言运算符 运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: l 算术运算符 l 关系运算符 l 逻辑运算符 l 位运算符 l 赋值运算符 l 其他运算符 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 运算符 描述 实例 + 相加 阅读全文
posted @ 2024-01-23 10:29 易先讯 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这是我们 Golang 系列教程的第一个教程。 1. GO介绍与安装 Golang 是什么 Go 亦称为 Golang(译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。 Golang 的主要关注点是使得高可用性和可扩展 阅读全文
posted @ 2024-01-23 10:28 易先讯 阅读(4) 评论(0) 推荐(0) 编辑