-
Go strings 系统包的使用说明
前文我们有学习了 string 变量,发现 Go 语言并没有向面向对象语言那样,类型中自带方法来处理对象的值。Go语言中也有类似的操作,其操作全都在 strings 系统包中实现了。本文主要来讲解一下如何使用 strings 系统包比较常用的字符串操作。 1. 获取字符串长度 在往数据库中写入数据的时候,数据库字段通常都会有长度限制,所以在写入之前最好事先判断一下字符串的长度是否符合自己的设计。 代码示例: 代码块 1 package main 2 3 import ( 4 …
-
Go 语言中的系统包
之前已经学习了 Go 语言中的文件操作,同时Go语言用有很多其它的系统包,功能非常丰富。本文就来简单介绍几个 Go 语言中常用的系统包。 1. fmt 在 Go 语言中使用的最多的包没有之一,用于各种输出,甚至于组装字符串,其中的 fmt.Println() 和fmt.Print() 是 Go 开发者们用的最多的函数。 2. io io 包中主要是对 os 接口的封装,使其变得更加精简,功能更丰富。 3. bufio bufio 包主要是对 io 包进行…
-
Go 语言的文件操作
本文主要介绍 Go 语言中对文件系统的操作,Go 语言内置库中提供了丰富的文件操作函数,所以本文主要介绍使用Go 语言中的内置包——“os” 来实现文件操作。 1. 文件创建/打开 若你想创建/打开一个文件,则可以使用 代码块 1 func OpenFile(name string, flag int, perm uint32) (file *File, err Error) 参数解释: name:就是文件名,若文件不在执行程序目录下,则可以使用文件的相对路径或者绝对路径。 fl…
-
Go 语言 go mod 包依赖管理工具
前文了解了 Go 语言中的包来复用代码,一直以来 Go 语言的包管理都是饱受开发者诟病的一个软肋,直到官方推出了 go mod。这个强大的包管理工具使得我们彻底告别了 Go 语言繁琐的包管理。本文就来介绍以下如何使用 go mod 来进行包管理。 Tips:只有在Go11.1之后的版本有这个工具,在Go语言13.0以后该工具趋于完善。本文的Go版本为13.5,建议使用最新版本的Go语言环境。 1. 指令介绍 在控制台中输入go mod指令,会出来这个工具的帮助命令。 指令解析如下表…
-
Go 语言中的包
在 Go 语言的错误处理中我们提到了 errors 包,当时没有详细的介绍。本文就来详细的介绍一下 Go 语言中包相关的概念。 和大部分语言一致,Go 语言也是支持调用其它文件中的 Go 代码的。Go 语言是现这一功能则是通过包来实现的。而实现包的功能则是通过关键字 package 来实现的,使用 package 来声明代码所在的包。 1. 基本概念 Go 语言中一般使用文件所在的文件名来命名自己的包名,这样层次清晰便于管理。其中包名定义的注意事项如下: 包名一般都是全小写; 包名…
-
Go 语言的并发
Go 语言中的多线程操作是其语言的一大特色,它具有其它语言无法比拟的,可以近乎无限开启的线程。在 Go 语言中被称之为 goroutine ,它是线程的轻量级实现。Go 语言的并发广泛的应用在服务器性能调优的场景中,这也是越来越多的游戏服务器开发都在往 Go 语言倾斜的原因之一。 1.Go 语言的 goroutine 在 Go 语言中使用 go 关键字来创建 goroutine ,形如go 函数名()的形式去创建。每一个 goroutine 必须是一个函数,这个函数也可以是匿名函数…
-
Go 语言中的错误和异常处理
在 Go 语言中没有与 Java 或者 .NET 类似的异常处理机制。Go 语言的开发者认为类似的异常处理已经被过多的使用了,这样的异常机制过度依赖上层代码对异常的处理,如果上层代码对异常的处理不到位会使程序出一些不易排查的BUG。所以为了让开发者能够重视并正确的处理每一个可能会出现异常的函数,Go语言采用返回值的形式来返回错误。这一机制,既可以让开发者真正理解错误处理的含义,也可以大大降低程序的复杂度。 1.error 接口 error 是系统自带的一个接口类型的自定义类型。 代…
-
Go 语言函数式编程
本文主要介绍 Go 语言的另一大编程特性——函数式编程。函数式编程的基础特点为: 函数是一等公民,即函数可以做为变量。 纯函数,即函数内的操作不可影响到函数外。 Go 语言的函数式编程无需遵循第二点,这一特性为 Go 语言的函数式编程带来了更大的灵活性。 1. 编程示例 接下来我们来分别展示用函数式编程和普通编程方式来实现一个累加器,即输出 1+2+3+…+100 的值。 普通方式实现: 代码块 1 func main() { 2 a := 0 3 …
-
Go 语言中的 nil
nil 是 Go 语言中内置的一个标识符,有人会把它当作其它语言中的NULL,这个是不准确的。本文就来介绍一下 Go 语言中的 nil 的特点。 1. nil 是特殊的零值 在 Go 语言中,任何一个变量在声明之后会自动被赋予一个零值。数值类型的变量零值为0,字符串为"",而指针、切片、map、通道、函数和接口的零值就是nil。 代码示例 代码块 1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main()…
-
Go 语言类型的内嵌
在 Go 语言中的类型是可以直接内嵌到结构体中的,可以看作是一个没有属性名的属性。同时接口中也可以内嵌接口,并且只能内嵌接口。本文就来讲解以下 Go 语言如何使用内嵌类型。 1. 结构体内嵌类型 结构体中内嵌类型在开发中用的并不多,这只是一个延伸特性。意味着结构体在定义属性字段的时候可以只写类型,不写属性名,但是一个类型只能写一个,不然结构体会无法识别你调用的时候使用的是哪个字段,这种只写类型不写属性名的属性被称为匿名字段。 代码示例: 代码块 1 package main 2 …