Go语言发展
Go语言发展 Go语言发展教程 给这门编程语言取名为 “Go语言”,它很简短,易书写。 工具类可以命名为:goc、 gol、goa。交互式的调试工具也可以直接命名为 “go”。语言文件后缀名为 .go 等等。
Go语言特点
Go语言特点教程 Go语言(也叫 golang)起源于 2007 年,并在 2009 年正式对外发布。Go语言 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
Go语言特性
Go语言特性 Go语言特性教程 Go语言 从本质上(程序和结构方面) 来实现并发编程。因为 golang 没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过 接口(interface)的概念来实现多态性。
Go语言优势
Go语言优势 Go语言设计初衷 设计 Go语言 是为了解决当时 Google 开发遇到的问题:大量的 C++ 代码,同时又引入了 Java 和 Python 成千上万的工程师 数以万计行的代码 分布式的编译系统
Go语言项目
Go语言项目 为什么选择Go语言 执行性能 缩短 API 的响应时长,解决批量请求访问超时的问题。 开发效率 Go语言应用领域 云计算基础设施领域 基础软件 微服务 互联网基础设施
Go语言性能
Go语言性能 根据 Go语言 开发团队和基本的算法测试,Go语言与C语言的性能差距大概在 10%~20% 之间。虽然没有官方的性能标准,但是与其它各个语言相比已经拥有非常出色的表现。
Go语言代码风格
Go语言代码风格 Go语言代码说明 Go语言 语法类似于C语言,因此熟悉C语言及其派生语言(C++、C#、Objective-C 等)的人都会迅速熟悉这门语言。C语言的有些语法会让代码可读性降低甚至发生歧义。
Windows安装Go开发环境
Windows安装Go开发环境 Go语言安装包下载 Go语言下载地址 https://golang.google.cn/dl Go语言下载 打开上面的链接,打开 Go语言 的下载页面,这里我们选择 Microsoft Windows ,直接点击,即可下载。
Centos安装Go开发环境
Centos安装Go开发环境 Go语言安装包下载 Go语言下载地址 https://golang.google.cn/dl/ Go语言下载 打开上面的链接,打开 Go语言 的下载页面,这里我们选择 Linux ,直接点击,即可下载。
Windows Go HelloWorld
Windows Go HelloWorld Windows Go HelloWorld 教程 使用记事本,新建一个 helloworld.go 文件,输入以下内容:package main import "fmt" func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)")}
Linux Go HelloWorld
Linux Go HelloWorld,Linux Go HelloWorld 教程 使用 vim,新建一个 helloworld.go 文件: [root@localhost workspace]# vim helloworld.go 输入以下内容: package main import "fmt" func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") }
Windows安装Goland IDE
Windows安装Goland IDE Goland下载 Goland下载地址 https://www.jetbrains.com/go/ Goland 下载 打开上面的链接,打开 Goland 的下载页面, 这里我们点击 Download,跳转到新的页面
Go语言工程目录
Go语言工程目录 Go语言工程目录教程 Go语言 工作区的目录主要分为 src目录、pkg目录 以及 bin目录。 Go语言工作区 一般情况下,Go语言的源码文件必须放在工作区中。但是对于命令源码文件来说,这不是必需的。
GOPATH与GOROOT
GOPATH 与 GOROOT GOPATH与GOROOT教程 Go语言 的工程管理需要依靠 GOPATH 和 GOROOT 环境变量的设置。 GOPATH 我们需要将工作区的目录路径添加到环境变量 GOPATH 中。否则,即使处于同一工作区,代码之间也无法通过绝对代码包路径调用。
Go HelloWorld详解
Go HelloWorld详解 Go HelloWorld详解教程 我们使用 goland 编辑器,新建一个 helloworld.go 文件,输入以下内容: package main import "fmt" func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") } 运行该程序
Go语言转义字符
Go语言转义字符 Go语言转义字符教程 - 在编程中有一些字符是打不出来的,比如换行,提示音,下一个制表位等等,于是程序语言的开发者就设计了转义序列(escape sequence)这种东西用来表达这些字符。
Go语言多变量初始化
Go语言多变量初始化 Go语言多变量初始化教程 Go语言变量 在定义的时候,可以支持同时定义多个变量并初始化。 Go语言 在声明并初始化多个变量时,支持使用 var 语法或者 := 语法。
Go语言多变量初始化
Go语言多变量初始化 Go语言多变量初始化教程 Go语言变量 在定义的时候,可以支持同时定义多个变量并初始化。Go语言 在声明并初始化多个 变量时,支持使用 var 语法或者 := 语法。
Go语言匿名变量
Go语言匿名变量教程 Go语言 中定义未使用的 变量 是不被允许的,编译时,程序会报错,但有时候函数可能返回多个值,但有些值我们是不需要使用的,这时候只能使用 Go语言匿名变量 来处理。
Go语言变量作用域
Go语言变量作用域 Go语言变量作用域教程 Go语言 中的一个 变量(常量、类型或函数)在程序中都有一定的作用范围,我们称之为作用域。 Go语言变量作用域 分为局部作用域和全局作用域。
Go语言整型(int 整数类型)
Go语言整型(整数类型) Go语言整型教程 Go语言 的数值类型分为 整数类型,浮点数类型 和 复数类型。每种数值类型都有其对应的大小以及是否支持正负号的定义。
Go语言浮点(float)类型(小数类型)
Go语言浮点型教程 Go语言 中的浮点类型是用于存放小数的。Go语言浮点类型 提供了两种精度的浮点数,float32 和 float64。 Go语言整数类型 可以分为有符号整数和无符号整数两大类型。
Go语言复数(complex)类型
Go语言复数类型 Go语言复数类型教程 Go语言 提供了两种复数类型,complex64 和 complex128 。其中,complex64 的实数部分和虚数部分都是 float32类型,complex128 的实数部分和虚数部分都是 float64类型。 Go语言复数类型定义。
Go语言字符(byte rune)类型
Go语言字符类型 Go语言字符类型教程 字符串 中的每一个元素叫做一个 字符。Go语言 中的单个字符 常量 必须使用单引号引起来。 Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存。
Go语言布尔(bool)类型
Go语言布尔类型 Go语言布尔类型教程 Go语言布尔类型 也叫 bool类型,Go语言 bool 类型数据只允许取值 true 和 false。Golang 中 bool类型 占 1 个字节,默认值为 false。Go语言布尔类型适用于 逻辑运算。
Go语言字符串(string)类型
Go语言字符串类型 Go语言字符串类型教程 字符串 是一个不可改变的字节序列。字符串可以包含任意的数据,但是通常是用来包含可读的文本。 Go语言 字符串是 UTF-8 字符的一个序列
Go语言类型转换
Go语言类型转换 Go语言类型转换教程 在 Go语言 中,一个 类型 的值可以被转换成另一种类型的值,这个转换就叫做 类型转换。在 Go语言类型转换 中不存在隐式类型转换,因此所有的转换都必须显式声明。
Go语言int转string类型
Go语言int转string Go语言int转string教程 在 Go语言 中,经常需要将 int类型 转成 string类型。Go语言int转string可以使用 strconv 包或者 fmt 包里面的相关函数。 Go语言int转string语法 strconv Go语言int转string 可以使用 strconv.Itoa 函数实现。
Go语言float转string类型
Go语言float转string教程 在 Go语言中,经常需要将 float类型 转成 string类型。Go语言float转string可以使用 strconv 包或者 fmt 包里面的相关函数。Go语言float转string语法 strconv Go语言float64转string 可以使用 strconv.FormatFloat 函数实现。
Go语言string转int
Go语言string转int教程 在 Go语言中,经常需要将 string类型转成 int类型。Go语言string转int 可以使用 strconv 包里面的相关函数。Go语言string转int语法 Go语言string转int 可以使用 strconv.Atoi 函数实现。
Go语言string转float
Go语言string转float Go语言string转float教程 在 Go语言中,经常需要将 string类型转成 float类型。Go语言string转float 可以使用 strconv 包里面的相关函数。Go语言string转float语法 Go语言string转float可以使用 strconv.ParseFloat 函数实现
Go语言常量(const)
Go语言常量(const) Go语言常量(const)教程 Golang 中的常量用于存储不会改变的数据,Go语言常量 的定义使用 const 关键字。Go语言常量是在编译时被创建,即使被定义为函数局部的也如此。
Go语言常量(iota)
Go语言常量(iota)教程 Golang 中的常量声明可以使用 iota常量生成器 初始化。Go语言常量(iota)生成器用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。
Go语言枚举
Go语言枚举教程 Golang 中没有 enum 关键字,要定义枚举可以使用 const 配合 iota常量生成器来定义。iota 不仅只生成每次增加 1 的枚举值。我们还可以利用 iota 来做一些强大的枚举常量值生成器。
Go语言类型别名(Type)
Go语言类型别名(Type)教程 Golang 中类型别名就是为已存在的类型定义一个别名。Golang 中类型别名使用 type 关键字来定义。Go语言类型别名(Type) type TypeAlias = Type Go语言类型别名 是 Go 1.9 之后的版本才有的功能。
Go语言运算符
Go语言运算符教程 Golang 中运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 Go语言运算符分类 算术运算符 赋值运算符 比较运算符/关系运算符 逻辑运算符 位运算符 其它运算符
Go语言赋值运算符
Go语言赋值运算符 Go语言赋值运算符教程 在 Golang 中,赋值运算符是对已存在的变量进行重新设置新值的运算符。案例 左移右移赋值 使用 golang 运算符,实现左移右移赋值
Go语言比较运算符
Go语言比较运算符 Go语言比较运算符教程 在 Golang 中,关系运算符的结果都是 bool 型,也就是要么是 true,要么是 false。关系表达式经常用在 if 结构的条件中或循环结构的条件中。
Go语言逻辑运算符
Go语言逻辑运算符 Go语言逻辑运算符教程 在 Golang 中,逻辑运算符是用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个 bool 值。Go语言逻辑运算符语法
Go语言其他运算符
Go语言指针运算符 Go语言指针运算符教程 在 Golang 中,指针运算符主要包括取地址运算符 & 和取值运算符 *。Go语言指针运算符语法 & 返回变量的地址 * 获取指针变量对应的值。
Go语言键盘输入
Go语言键盘输入教程 在编程中,我们经常需要获取用户的键盘输入的内容,这时候,就需要我们使用键盘输入语句来获取用户输入的数据。 在 Golang 中,获取用户输入的数据使用 fmt.Scanf() 或者 fmt.Scanln()。
Go语言格式化占位符
Go语言格式化占位符 Go语言格式化占位符教程 在 Golang 中,格式化的输入与输出,都需要使用到格式化占位符。比如获取用户输入的数据的函数 fmt.Scanf() ,格式化输出的函数 fmt.Printf()。
Go语言if条件判断
Go语言if条件判断教程 在 Go语言 中,关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句是否满足一定的条件,如果满足特定的条件,则会执行 if 后由大括号 {} 括起来的代码块
Go语言else if条件判断
Go语言else if条件判断教程 在 Go语言 中,else if 关键字用于在 if 语句条件不满足的情况下,继续执行 else if 里面的逻辑判断,如果满足条件则执行 else if 大括号里面的逻辑。
Go语言else条件判断
Go语言else条件判断教程 在 Go语言 中,关键字 else 是用于在 if 条件不满足,且所有的 else if 条件也都不满足的情况下,执行的代码逻辑。else 关键字可以直接配套 if 语句使用。
Go语言if else嵌套
Go语言if else嵌套 Go语言if else嵌套教程 在 Go语言 中,if语句、else if语句 和 else 语句 可以进行任意的嵌套。 Go语言if else嵌套语法
Go语言for循环
Go语言for循环 Go语言for循环教程 一般程序设计语言的循环可以分为 for循环 、while循环 和 do while循环 ,但是在 Go语言 中,只支持 for循环。while 循环和 do while 循环都可以使用 for循环来实现。
Go语言循环嵌套
Go语言循环嵌套 Go语言循环嵌套教程 Go语言 的 for循环 也可以实现嵌套的效果,即 for循环里面嵌套一个或多个for循环。这种写法就类似于 golang 的 if语句 、else if语句 和 else语句 的嵌套。
Go语言for range循环
Go语言for range循环教程 Go语言的键值 for循环使用的是 for range 的语法形式,类似于其他语言中的 foreach 语句,在Go语言里面,键值循环可以用来遍历字符串、数组、切片、map 以及 channel 等。
Go语言for range遍历数组
Go语言for range遍历数组 Go语言for range遍历数组教程 Go语言的键值for循环使用的是 for range 的语法形式,可以用来遍历数组 。Go语言for range循环遍历数组 for key, value := range arr{}
Go语言for range遍历切片
Go语言for range遍历切片 Go语言for range遍历切片教程 Go语言的键值for循环使用的是 for range 的语法形式,可以用来遍历切片 。Go语言for range循环遍历切片 for key, value := range slice{}
Go语言for range遍历map
Go语言for range遍历map Go语言for range遍历map教程 Go语言的键值 for循环 使用的是 for range 的语法形式,可以用来遍历 map 。Go语言for range循环遍历map for key, value := range mapVar{}
Go语言switch语句
Go语言switch语句教程 switch语句 的作用类似于 if语句,用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
Go语言switch语句
Go语言switch语句教程 Go语言 的 switch语句 后面不需要再加 break语句,case 语句最后自带 break 语句。 如果我们执行完匹配的 case 后,还需要继续执行后面的 case,可以使用 fallthrough 。
Go语言break语句
Go语言break语句教程 在我们使用 for循环 时,在某种条件满足的情况下,需要终止循环的继续执行,在 Go语言 中,终止循环的继续运行使用的 关键字 为 break。
Go语言continue语句
Go语言continue语句教程 在我们使用 for循环 时,在某种条件满足的情况下,需要跳过本次循环,继续执行下一次循环,在 Go语言 中,跳过本次循环的继续运行下一次循环使用的 关键字 为 continue。
Go语言goto语句
Go语言goto语句教程 在 Go语言 中,实现 循环 的跳转除了使用 break 和 continue 以外,还可以使用 goto语句。当然,goto语句不仅可以使用在循环中,还可以使用在代码的任何地方。
Go语言return语句
Go语言return语句教程 在 Go语言 中,跳转控制语句除了有 goto 、break 和 continue 之外,还可以使用 return 。如果 return 语句使用在普通的 函数 中,则表示跳出该函数,不再执行函数中 return 后面的代码,可以理解成终止函数。
Go语言函数返回值
Go语言的函数的返回值我们可以显式的指定返回值的名称,在显式指定返回值名称的时候,如果相邻的几个返回值的 类型 相同,那么我们可以省略前几个返回值的类型,只需要写最后一个返回值的类型。
Go语言函数可变参数
Go语言函数可变参数教程在 Go语言中,函数的可变参数除了可以支持指定任意的个数,还可以支持任意的数据类型 。Go语言函数可变参数定义 func funName(args ...interface{}){}
Go语言函数变量
Go语言函数变量 Go语言函数变量教程在Go语言中,函数也是一种类型,可以和其他数据类型一样保存在 变量中。Go语言函数变量 func fun() {} var f func() f = fun
Go语言匿名函数
Go语言匿名函数教程 匿名函数,就是只有函数体没有函数名的 函数。Go语言 支持匿名函数的定义,Go语言的匿名函数可以作为一种 类型 被赋值给函数类型的 变量,匿名函数也往往以变量方式传递。
Go语言匿名函数
Go语言匿名函数教程 Go语言 的 匿名函数 可以直接赋值给 变量, 也可以作为函数的 参数,传递给 函数。 Go语言匿名函数赋值给变量 f = func(paramters)(returnvals){ //do something } f(paramters) 我们定义了一个匿名函数
Go语言defer
Go语言defer教程 在我们编写 函数 时,经常需要创建资源(比如:数据库连接、文件句柄、锁等),为了在函数执行完毕后,及时释放资源,Go语言 设计者提供了 defer(延时机制)。
Go语言defer
Go语言defer Go语言defer教程 Go语言 的 defer语句 一般都是用来处理需要关闭的资源。如果同一个 函数 中,既有 defer 语句,同时也有 return 语句,那么 defer 语句会在 return 语句的后面执行。
Go语言函数递归
Go语言函数递归教程 函数递归 就是一个 函数 在函数体内又调用了自身,我们称为函数的递归调用。Go语言函数递归条件 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)。
Go语言recover
Go语言recover Go语言recover教程 在 Go语言 中,如果我们的 函数 或者程序出现了非常严重的问题,或者说我们的程序遇到了 panic 异常,此时我们的程序会终止运行。
Go语言函数执行时间
Go语言统计函数执行时间教程 有时候,我们需要查看程序的执行性能,最常用的方法就是统计 函数 的执行时间。 在 Go语言 中,统计函数的执行时长,最简单的方法就是在函数开始的时候计算时间
Go语言main函数
Go语言main函数教程 Go语言 程序有一个特殊的 函数,就是 main 函数,main 函数是程序的入口,也就是说程序的运行一定是从 main 函数开始的。整个程序中,main 函数只能有一个。
Go语言命令行参数解析
Go语言main函数命令行教程 Go语言 程序的命令行,除了可以使用 os.Args 来获取,还可以通过 flag 包相关的 函数 来获取。os.Args 获取方式只能根据索引一个个去遍历获取。
Go语言拼接字符串
Go语言拼接字符串教程,Go语言拼接字符串有五种方法,分别是:使用+号拼接、使用 sprintf 拼接、使用 join 函数拼接、使用 buffer.WriteString 函数拼接、使用 buffer.Builder 拼接。
Go语言拼接字符串
Go语言拼接字符串教程,Go语言拼接字符串有五种方法,分别是:使用+号拼接、使用 sprintf 拼接、使用 join 函数拼接、使用 buffer.WriteString 函数拼接、使用 buffer.Builder 拼接。
Go语言字符串长度
Go语言获取字符串长度教程,在Go语言中要想获取字符串长度有四种方法,分别为:使用 bytes.Count() 获取、使用 strings.Count() 获取、使用 len() 获取和使用 utf8.RuneCountInString() 获取。
Go语言字符串Count函数
Go语言字符串出现次数教程,在开发过程中,很多时候我们有统计单个字符或者字符串在另一个字符串中出现次数的需求,在Go语言中,统计字符串出现次数我们使用 count() 函数。
Go语言查找字符串
Go语言查找字符串教程,在开发过程中,很多时候我们有在一个字符串中查找另一个字符串或者字符的需求,在Go语言中,在一个字符串中查找另一个字符串我们使用 Strings.Index() 系列函数。
Go语言反向查找字符串
Go语言反向查找字符串教程,在Go语言中,在一个字符串中从开始查找另一个字符串我们使用Strings.Index()函数,从结尾往前查找我们使用Strings.LastIndex()函数。
Go语言字符串中查找字符序列
Go语言查找字符序列函数教程,在Go语言中,在一个字符串中从开始查找另一个字符序列我们使用Strings.IndexAny()函数,从结尾往前查找我们使用 Strings.LastIndexAny() 函数。
Go语言查找字符串中单个字符
Go语言查找字符串中单个字符教程,在Go语言中,在一个字符串中从开始查找一个字符我们使用Strings.IndexByte()函数,从结尾往前查找我们使用 Strings.LastIndexByte() 函数。
Go语言字符串中查找中文字符
Go语言查找字符串中中文字符教程,在 Go 语言中,在一个字符串中从开始查找一个中文字符我们使用 Strings.IndexRune() 函数,从结尾往前查找我们使用 Strings.LastIndexRune() 函数
Go语言根据指定条件查找字符
Go语言根据指定条件查找字符教程,在Go语言中,在一个字符串中查找满足特定条件字符我们可以使用 Strings.IndexFunc() 函数,Strings.IndexFunc() 函数的第二个参数是一个匿名函数。
Go语言字符串开始
Go语言字符串开头教程,在开发过程中,很多时候我们需要判断一个字符串是否以某个字符或者是否以某个字符串开始的需求,在Go语言中,判断某个字符串是否以某个字符或者是否以某个字符串开头的函数为 Strings.HasPrefix() 。
Go语言字符串结尾
Go语言字符串结尾教程,在开发过程中,很多时候我们需要判断一个字符串是否以某个字符或者是否以某个字符串结束的需求,在Go语言中,判断某个字符串是否以某个字符或者是否以某个字符串结尾的函数为 Strings.HasSuffix() 。
Go语言字符串首字母大写
Go语言字符串首字母大写教程,在开发过程中,很多时候我们需要将一个字符串的首字母转成大写的需求,在 Go 语言中,将某个字符串的首字母转成大写的函数为 strings.ToTitle()
Go语言字符串大写转小写
Go语言字符串大写转小写教程,在开发过程中,很多时候我们需要将一个字符串 的大写形式全部转换成小写的需求,在 Go 语言中,将某个字符串的大写字符转成小写使用的函数为 strings.ToLower()。
Go语言去除右边指定字符串
Go语言去除右边指定字符串教程,在开发过程中,有时候我们需要去除一个字符串中的右边指定字符串,在 Go 语言中,去除字符串中右边指定字符串的函数为 TrimRight() 。
Go语言去除指定规则字符串
Go语言去除指定规则字符串教程,在开发过程中,有时候我们需要去除一个字符串中符合指定规则字符串,在 Go 语言中,去除字符串中符合指定规则字符串的函数为TrimFunc() 。
Go语言字符串包含子串
Go语言字符串包含子串教程,在开发过程中,很多时候我们需要判断一个字符串是否在另一个字符串中,在 Go 语言中,我们可以使用 Index 函数来实现,如果 Index 函数,返回
Go语言字符串包含字符
Go语言字符串包含字符教程,在开发过程中,很多时候我们需要判断一个字符是否在另一个字符串中,在 Go 语言中,我们可以使用 Index 函数来实现,如果 Index 函数,返回 -1
Go语言字符串遍历处理
Go语言字符串遍历处理教程,在开发过程中,很多时候我们需要对一个字符串中的每一个字符都做相对应的处理,在 Go 语言中,提供了 strings.Map() 函数实现了这样的功能。
Go语言字符串忽略大小写比较
Go语言字符串忽略大小写比较教程,Go语言中忽略字符串的大小写比较是否相等,使用 EqualFold 函数。Go语言字符串 EqualFold 比较:func EqualFold(s, t string) bool,字符串 s 和字符串 t 忽略大小写比较。
Go语言字符串重复
Go语言字符串重复教程,在开发过程中,有时候我们需要将一个字符串重复的需求,在 Go 语言中,将某个字符串重复我们可以通过 for 循环加上字符串拼接来实现。但 Golang 中,提供了
Go语言字符串全部替换
Go语言字符串全部替换教程,在开发过程中,有时候我们需要将一个字符串中特定的字符串全部替换成新的字符串的需求,在 Go 语言中,我们可以通过 strings.Replace()函数最
Go语言数组赋值
Go语言数组赋值教程,Go语言的数组的赋值,即给定义好的数组指定的索引的位置设置对应的值。Go语言数组赋值:arr[index] = value,给数组 arr 的索引为 index 的位置设置值为 value。
Go语言切片添加元素
Go语言切片添加元素教程,Go语言的切片添加元素使用 append 函数。append函数详解,语法,func append(slice []Type, elems ...Type)
Go语言切片删除元素
Go语言切片删除元素教程,Go语言的切片删除元素使用 append 函数 来间接的实现。删除索引 index 处的元素语法:sliceHaiCoder = append(sliceHaiCoder[:index], sliceHaiCoder[index+1:]...)
Go语言切片删除元素
Go语言切片删除元素教程,Go语言的切片删除前 N 个元素与后 N 个元素可以使用索引切片来间接的实现。删除切片前 N 个元素语法:sliceHaiCoder = sliceHaiCoder[N:]
Go语言map
Go语言 map 教程,Go语言中 map 是一个 key(索引)和 value(值)形式的无序的集合,也可以称为关联数组或字典,Golang 中的 map 能够快速根据给定 key,找到对应的 value 的数据结构。
Go语言map遍历
Go语言 map 遍历教程,Go语言中 map 的遍历只能使用 for range 的形式,for range 循环返回的第一个是 map 的 key,返回的第二个是 map 的 value。
Go语言syncMap
Go语言 sync.Map 教程,Go语言中 map 如果在并发读的情况下是线程安全的,如果是在并发写的情况下,则是线程不安全的。Golang 为我们提供了一个 sync.Map 是并发写安全的。
Go语言syncMap添加元素
Go语言 sync.Map 添加元素教程,Go语言中 sync.Map 的添加元素不是跟原生的 map 一样,使用 [] 的形式,而是使用内置的 Store 函数。
Go语言syncMap获取元素
Go语言 sync.Map 获取元素教程,Go语言中 sync.Map 的获取元素不是跟原生的 map 一样,使用 [] 的形式,而是使用内置的 Load 函数。
Go语言syncMap遍历元素
Go语言 sync.Map 遍历元素教程,Go语言中 sync.Map 的元素遍历,不可以使用 for 循环或者 for range 循环,而是使用 Range 配合一个回调函数进行遍历操作。
Go语言syncMap LoadOrStore
Go语言sync.Map LoadOrStore教程,Go 语言 中 sync.Map 的 LoadOrStore 函数 表示,如果我们获取的 key 存在,那么就返回 key 对应的元素,如果获取的 key 不存在,那么就返回我们设置的值,并且将我们设置的值,存入 map。
Go语言列表list插入列表
Go语言列表list插入列表教程,Golang 的 列表 除了支持 插入元素 外,还可以将整个列表插入到另一个列表中。在一个列表中插入另一个列表,只支持两种情况,分别为:在头部插入列表和在尾部插入列表。
Go语言列表list删除元素
Go语言列表list删除元素,Go语言列表list删除元素教程,Golang 的 列表 的删除元素使用 remove 函数,删除的元素不能为空,如果为空,会报异常。
Go语言列表list遍历
Go语言列表list遍历教程,Golang 的 列表 的遍历分为正序遍历和倒叙遍历,正序遍历就是从链表的头元素遍历到尾元素,倒叙遍历就是从链表的尾元素遍历到链表的头元素。
Go语言列表list元素移到最前教程
Go语言列表list元素移到最前教程,Golang 的 列表 元素的移动除了提供了 移到指定元素的前面 和 移到指定元素的后面,还提供了移到列表的最前面和 移到列表的最后面 的操作。
Go语言列表list元素移到最后
Go语言列表list元素移到最后教程,如果要移到最后面的元素本来就在列表的最后面,那么列表不会做任何的改动,或者如果指定元素不是列表中的元素,列表也不会做任何改动。
Go语言列表list获取元素
Go语言列表list获取元素教程,Golang 的 列表 元素的获取可以使用内置的 Front 函数获取头结点,使用 Back 函数获取尾结点,使用 Prev 获取前一个结点,使用 Next 获取下一个结点。
Go语言new与make区别
Go语言new与make区别教程,Go 语言 中 new 和 make 是两个内置 函数,主要用来创建并分配内存。Golang 中的 new 与 make 的区别是 new 只分配内存,而 make 只能用于 slice、map 和 channel 的初始化。
Go语言结构体实例化
Go 语言中结构体定义完之后,并不能直接使用,因此此时还没有分配内存,因此,我们必须在定义完结构体,并实例话之后才可以使用结构体。Golang 中结构体的实例化主要有三种方式。
Go语言键值对初始化结构体
Go语言键值对初始化结构体教程,Go 语言 中 结构体 变量的初始化的方式有两种,分别为:使用 列表对字段挨个赋值 和使用键值对赋值的方式。本章节使用键值对赋值的方式
Go语言结构体赋值
Go语言结构体赋值教程,Go 语言 中 结构体 的赋值可以使用结构体类型对该结构体 变量 整体赋值,也可以使用结构体变量加上 "." 再使用结构体字段名对结构体单个字段赋值。
Go语言结构体匿名字段赋值
Go语言结构体匿名字段赋值教程,Go 语言 中 结构体 的 匿名字段 的赋值可以使用 "." 访问整个匿名字段,并对其赋值的方式,也可以使用 "." 的方式分别访问匿名字段中的每一个子字段直接赋值。
Go语言结构体方法
Go语言结构体方法,Go语言结构体方法教程,Go 语言 中我们除了可以单独定义 函数,同时,还可以为 结构体 添加函数。被添加方法的结构体的变量名在 Golang 中被叫做接收器。
Go语言结构体方法指针接收器
Go语言结构体方法指针接收器,Go语言结构体方法指针接收器教程,Go 语言 中 结构体 方法的接收器可以是一个 指针 类型,如果是指针类型的接收器,那么在方法中,对结构体的修改都会生效。
Go语言任意类型添加方法
Go语言任意类型添加方法,Go语言任意类型添加方法教程,Go 语言 中除了可以为 结构体 添加方法,还可以为任意 类型 使用 type 定义别名,之后,就可以为别名添加方法。
Go语言error接口
Go语言error接口,Go语言error接口教程,一般程序设计语言中的错误处理分为两种情况,即错误和异常。在 Golang 中,错误处理一般都是通过 error 接口 来指定。
Go语言包
Go语言包,Go语言包教程,Go 语言 的源码组织使用的是包的形式。Go 语言的 main 函数只有在 main 包里面才可以被系统执行。Golang 中的任何源代码文件必须属于某个包。
Go语言包特性
Go语言包特性,Go 语言 中的 包(package)是多个 Go 源码的集合,是一种高级的代码复用方案,Golang 将一些常用的 方法 都封装成了一个个系统包,这些包也被称为标准库。
Go语言包引用
Go语言包引用,Go语言包引用教程,Go 语言 的内置的系统包的源码位于 `$GOROOT/src/` 目录,因为我们可以直接使用。而自定义的包和第三方的包的源码必须放到 `$GOPATH/src` 目录下才能被引用。
Go语言包引用方式
Go语言包引用方式教程,Golang 中的 包 的 引用 有四种引用格式,分别为:使用标准引用方式引入、使用别名引用方式引入、使用省略方式引入和仅执行包 init 函数方式引入。
Go语言自定义包
Go语言自定义包教程,Go 语言 中,我们除了可以使用系统内置的 包,还可以自己定义包。我们自定义的包必须放在 GOPATH 的 src 目录下,且同一个目录下只能有且只有一个包。
Go语言包结构体可访问性
Go语言包结构体可访问性,Go语言包结构体可访问性教程,在 Golang 中的一个 包 中如果定义了 结构体,该结构体的首字母如果小写,那么在其他包中将无法使用该结构体。
Go语言并发编程
Go语言并发编程,Go 语言 通过编译器运行时(runtime),从语言上支持了并发的特性。Go 语言的并发通过 goroutine 特性完成。Go 语言还提供 chan 在多个 goroutine 间进行通信。
Go语言协程创建
Go语言协程创建,Go语言协程创建教程,goroutine 是 Go 语言 中的轻量级线程实现,由 Go 运行时(runtime)管理。Go 程序会智能地将 goroutine 中的任务合理地分配给每个 CPU。
Go语言chan发送接收数据
Go语言chan发送接收数据,Go语言chan发送接收数据教程,Go 语言 中的 chan 是 goroutine 之间的通信机制,因此 chan 可以用来发送和接收数据。
Go语言chan关闭
Go语言chan关闭教程,Go 语言 中的 chan 也是一种系统资源,因此,我们不需要使用 chan 时,需要手动关闭管道。关闭管道,需要使用系统内置的 close 函数。
Go语言单向channel
Go语言单向channel,Go语言channel教程,Golang 中的 channel 默认是双向的,也就是既可以读也可以写,同时,我们还可以创建单向的 channel。
Go语言无缓冲channel
Go语言无缓冲channel,Go语言无缓冲channel教程,Golang 中的 channel 有两种类型,分别为:无缓冲 channel 和 带缓冲 channel。
Go语言带缓冲channel
Go语言带缓冲channel,Go语言带缓冲channel教程,Golang 中的 channel 有两种类型,分别为:无缓冲 channel 和 带缓冲 channel。本章节讲解带缓冲channel。
Go语言channel超时处理
Go语言channel超时处理教程,在 并发编程 的通信过程中,经常会遇到超时问题,即向 channel 写数据时发现 channel 已满,或者从 channel 试图读取数据时发现 channel 为空。
Go语言select多路复用
Go语言select多路复用,Go 语言中提供了 select 关键字,可以同时响应多个通道的操作。select 的用法与 switch 语句非常类似,由 select 开始一个新的选择块,每个选择条件由 case 语句来描述。
Go语言select超时处理
Go语言select超时处理教程,在 Golang 中,当我们使用 select 监听多个 channel 时,如果一直没有满足的 case 触发,并且 select 没有 default case 时,那么 select 就会永久的等待,select 很可能就一直阻塞程序。
Go语言反射语法
Go语言反射语法,Go 语言中的反射与其他语言有比较大的不同,Golang 中的发射主要涉及到两个基本概念 Type 和 Value,它们也是 Go 语言包中 reflect 包里最重要的两个类型。
Go语言反射Type详解
Go语言反射Type详解教程,在 Golang 中,使用 反射 的方法 reflect.TypeOf 可以获取 变量 的 数据类型,同时,在 reflect.TypeOf 返回的 Type 中,我们还可以使用 Kind() 方法 来获取类型的详细信息。
Go语言反射Value详解
Go语言反射Value详解教程,在 Golang 中,通过 反射 的方法 reflect.TypeOf 可以获取 变量 的 数据类型,通过反射的 reflect.ValueOf 可以获取变量的值信息。
Go语言反射操作切片
Go语言反射操作切片,整体修改切片的值,我们使用 Set 函数,传入整个切片即可,修改某个索引处的值,我们首先需要通过 Index 找到索引,然后使用 Set 函数做修改。
Go语言反射解析结构体
Go语言反射解析结构体教程,在 Golang 中,通过 反射 的 `reflect.TypeOf()` 获得反射的对象信息后,如果是 结构体 类型,可以通过反射 值对象(reflect.Type)的 NumField() 和 Field() 方法获得结构体成员的详细信息。
Go语言反射解析结构体Tag
Go语言反射解析结构体,Go语言反射解析结构体教程,在 Golang 中,通过 反射 除了可以解析 结构体 的字段信息,还可以解析结构体字段的 Tag 的具体信息。
Go语言反射解析结构体字段值
Go语言反射解析结构体字段值教程,在 Golang 中,通过 反射 的 `reflect.ValueOf()` 获得反射的对象信息后,如果是 结构体 类型,可以通过反射 值对象(reflect.Value)的详细信息来获取结构体字段的值。
Go语言反射修改结构体字段值
Go语言反射解析结构体字段值教程,在 Golang 中,通过 反射 的 `reflect.ValueOf()` 获得反射的对象信息后,如果是 结构体 类型,可以通过反射的 Elem() 来修改字段值。
Go语言反射执行结构体方法
Go语言反射执行结构体方法教程,在 Golang 中,通过 反射 的 `reflect.ValueOf()` 获得 结构体 实例信息后,可以通过反射实例的 MethodByName 获取相应的方法,然后调用 Call 调用方法。
Go语言打开关闭文件
Go语言打开关闭文件教程,在 Golang 中,打开文件使用 Open 函数,关闭文件使用 Close 函数,打开文件、关闭文件以及大多数文件操作都涉及到一个很重要的 结构体 os.File 结构体。
Go语言读取文件
Go语言读取文件教程,在 Golang 中,读取 文件 有四种方法,分别为:使用 ioutil.ReadFile 读取文件,使用 file.Read 读取文件,使用 bufio.NewReader 读取文件,使用 ioutil.ReadAll 读取文件。
Go语言read读取文件
Go语言file.Read读取文件教程,在 Golang 中,读取 文件 有四种方法,分别为:使用 ioutil.ReadFile 读取文件,使用 file.Read 读取文件,使用 bufio.NewReader 读取文件,使用 ioutil.ReadAll 读取文件。
Go语言NewReader读取文件
Go语言NewReader读取文件教程,在 Golang 中,读取 文件 有四种方法,分别为:使用 ioutil.ReadFile 读取文件,使用 file.Read 读取文件,使用 bufio.NewReader 读取文件,使用 ioutil.ReadAll 读取文件。
Go语言ReadAll读取文件
Go语言ReadAll读取文件教程,在 Golang 中,读取 文件 有四种方法,分别为:使用 ioutil.ReadFile 读取文件,使用 file.Read 读取文件,使用 bufio.NewReader 读取文件,使用 ioutil.ReadAll 读取文件。
Go语言io.WriteString写入文件
Go语言io.WriteString写入文件教程,在 Golang 中,写 文件 有四种方法,分别为:使用 io.WriteString 写文件,使用 ioutil.WriteFile 写文件,使用 file.Write 写文件,使用 writer.WriteString 写文件。
Go语言ioutil.WriteFile写入文件
Go语言ioutil.WriteFile写入文件教程,在 Golang 中,写 文件 有四种方法,分别为:使用 io.WriteString 写文件,使用 ioutil.WriteFile 写文件,使用 file.Write 写文件,使用 writer.WriteString 写文件。
Go语言Write写入文件
Go语言ioutil.WriteFile写入文件教程,在 Golang 中,写 文件 有四种方法,分别为:使用 io.WriteString 写文件,使用 ioutil.WriteFile 写文件,使用 file.Write 写文件,使用 writer.WriteString 写文件。本章节讲解使用Write写入文件。
Go语言bufio.NewWriter写入文件
Go语言bufio.NewWriter写入文件教程,在 Golang 中,写 文件 有四种方法,分别为:使用 io.WriteString 写文件,使用 ioutil.WriteFile 写文件,使用 file.Write 写文件,使用 writer.WriteString 写文件。
Go语言将结构体写入文件
Go语言将结构体写入文件教程,在 Golang 中,如果需要将 结构体 写入 文件,那么我们可以先将结构体进行编码之后 写入文件,然后再 读出文件 的内容,最后,再对读出的内容进行解码出结构体。
Go语言判断文件是否存在
Go语言判断文件是否存在教程,在 Golang 中,判断 文件 或者目录是否存在,需要使用到 os.Stat 函数,根据 os.Stat 函数返回的 error 接口的信息来判断。
Go语言Socket编程
Go语言Socket编程教程,在计算机通信领域,socket 被翻译为 “套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
Go语言UdpServer
Go语言UdpServer教程,Go 语言 UdpServer 教程的步骤可以总结为:定义通信的地址和端口、使用 Listen 函数监听 UDP 的地址和端口信息并得到连接信息、从连接信息读取数据以及使用连接信息发送数据。
Go语言UdpClient
Go语言UdpClient,Go语言UdpClient教程,Go 语言 UdpClient 教程的步骤可以总结为:定义通信的地址和端口、使用 Dial 得到连接信息、从连接信息读取数据以及使用连接信息发送数据。
Go语言TcpServer
Go语言TcpServer教程,Go 语言 TcpServer 教程的步骤:定义地址和端口、使用 Listen 函数监听 TCP 得到连接信息、使用连接信息的 Accept 函数等待连接、每来一个连接得到一个连接,使用连接进行读写数据。
Go语言TcpClient
Go语言TcpClient,Go语言TcpClient教程,Go 语言 TcpClient 教程的步骤可以总结为:定义通信的地址和端口、使用 Dial 得到连接信息、从连接信息读取数据以及使用连接信息发送数据。