Golang基础
Golang基础
1. 主要特征
1.1 特征
- 垃圾回收
- 丰富的内置类型
- 多返回值
- 匿名函数
- 闭包
- OOP
- 并发编程
- 反射
- 错误处理
1.1.2 命名规则
- 首字母可以是不能是数组
- 可以由Unicode字符、下划线、数字构成
- 长度不限
- 严格固定首字母大小写,有不同含义
1.1.3 Go项目
一个Golang工程中主要包含三个目录:
在GOPATH目录下
- bin:编译后的二进制文件
- src:源代码文件
- pkg:包文件
1.2. 丰富的内置类型
1.2.1 普通类型
- bool
- int(32 or 64), int8, int16, int32, int64
- uint(32 or 64), uint8(byte), uint16, uint32, uint64
- float32, float64
- string
- complex64, complex128
- array
官方文档:int is a signed integer type that is at least 32 bits in size. It is a distinct type, however, and not an alias for, say, int32.
int整形最少占32位,int和int32是两码事
complex:复数类型
可以存储两个数值:real、image
实数部分和虚数部分都是[float32]类型
可以通过real(complex)拿到real值,同理可以通过imag(complex)拿到image值
例如:
func main() {
c := complex(11.11, 22.22)
fmt.Printf("%f\n%f", real(c), imag(c))
}
输出为:
11.110000
22.220000
array为固定长度
1.2.2 引用类型
- slice
- map
- chan
1.3 内置接口error
// The error built-in interface type is the conventional interface for
// representing an error condition, with the nil value representing no error.
// 表示错误条件,nil值表示没有错误。
type error interface {
Error() string
}
只要实现了这个方法,就是实现了error
可以自定义error
例如:
// 定义一个类
type Demo struct {
}
// 这个类实现Error方法,也就是实现error接口
func (d *Demo) Error() string {
return "自定义错误"
}
func main() {
err := testErr()
fmt.Println(err)
}
// 模拟一个错误
func testErr() error {
return &Demo{}
}
此时打印:自定义错误
1.4. 函数
1.4.1 init函数
- init函数用于包(package)的初始化,该函数是go语言的一个重要特性
- 每个包都可以有多个init()
- 包里每个源文件也可以有多个init()
- 多个init()执行顺序没有明确的规定
- 不同包的init()按照包导入的依赖关系决定执行顺序
- init()不能被其他函数调用
- 在main()执行前自动被调用
1.4.2 main函数
Go语言程序的默认入口函数(主函数)
-
两个函数在定义时不能有任何的参数和返回值
-
Go程序自动调用。
-
init函数可以应用于任意包中,且可以重复定义多个
-
main函数只能用于main包中,且只能定义一个。
1.5 Golang命令
- go env用于打印Go语言的环境信息。
- go run命令可以编译并运行命令源码文件。
- go get可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。
- go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包。
- go install用于编译并安装指定的代码包及它们的依赖包。
- go clean命令会删除掉执行其它命令时产生的一些文件和目录。
- go doc命令可以打印附于Go语言程序实体上的文档。我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的。
- go test命令用于对Go语言编写的程序进行测试。
- go list命令的作用是列出指定的代码包的信息。
- go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。
- go vet是一个用于检查Go语言源码中静态错误的简单工具。
- go tool pprof命令来交互式的访问概要文件的内容。
未完