Go语言学习笔记:从入门到精通

发表时间: 2023-11-17 22:47

最近对golang比较感兴趣。对于高性能、云原生具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。准备开始学习,打卡第一天

学习内容:

学习系统环境deepin社区版本20.9

  1. go安装

安装包下载地址为:https://go.dev/dl/。

如果打不开可以使用这个地址:
https://golang.google.cn/dl/。

下载好最新版本

tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
  1. go配置

配置环境变量。编辑vim ~/.zshrc 输入一下信息报错

export GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/binexport GOPATH=$HOME/go/workspace# 启用 Go Modules 功能go env -w GO111MODULE=ongo env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

编写第一个代码 vim main.go

package mainimport "fmt"func main() {	fmt.Println("Hello World Go!")}

go run main.go

[Running] go run "/home/kujirashark/Desktop/golearing/test01/main.go"Hello World Go![Done] exited with code=0 in 0.159 seconds

通过以上的命令操作我们基本上了解go的环境配置。接下来我们需要了解一下常用的go的命令,通过go

go help:显示指定命令的详细帮助信息go build:编译包与依赖go clean:移除当前源码包和关联源码包里面编译生成的文件go doc:展示包与符号的文档说明go env:打印Go的环境信息go bug:打开默认的浏览器让你汇报一个buggo fix:针对你提供的代码,自动将旧的API替换成新的APIgo fmt:格式化Go代码go generate:用于在编译前自动化生成某类代码go get:下载并安装指定的包及其依赖go install:编译包与依赖,可执行文件放到$GOPATH/bin,依赖包放到$GOPATH/pkggo list:查看当前安装的全部 packagego mod:模块维护。管理工程依赖的第三方库go run:编译并运行。运行结束会删除编译生成的可执行文件go test:后缀为_test.go的文件在build的时候会被忽略,go test用于编译它们并生成测试程序并运行go tool:运行指定的Go工具go version:打印Go版本信息go vet: 代码静态检查,报告代码中的语法错误
  1. 数据类型

  • 布尔值

布尔值 true 或者 false

package mainimport "fmt"func main() {	var bl bool = true	fmt.Println(bl)	var bl2 bool = false	fmt.Println(bl2)}
  • 数字类型

数字类型 :

uint8无符号 8 位整型 (0  255)uint16无符号 16 位整型 (0  65535)uint32无符号 32 位整型 (0  4294967295)uint64无符号 64 位整型 (0  18446744073709551615)int8有符号 8 位整型 (-128  127)int16有符号 16 位整型 (-32768  32767)int32有符号 32 位整型 (-2147483648  2147483647)int64有符号 64 位整型 (-9223372036854775808  9223372036854775807)

代码示例

package mainimport "fmt"func main() {	var v8 uint8 = 255	fmt.Println(v8)	var v16 uint16 = 65535	fmt.Println(v16)	var v32 uint32 = 4294967295	fmt.Println(v32)	var v64 uint64 = 18446744073709551615	fmt.Println(v64)	var a8 int8 = 1	fmt.Println(a8)	var a16 int16 = 32767		fmt.Println(a16)	var a32 int32 = 2147483647		fmt.Println(a32)	var a64 int64 = 9223372036854775807	fmt.Println(a64)	}

go run main.go

2556553542949672951844674407370955161513276721474836479223372036854775807

浮点类型:

float32IEEE-754 32位浮点型数float64IEEE-754 64位浮点型数complex6432 位实数和虚数complex12864 位实数和虚数

代码示例

package mainimport "fmt"func main() {	var f32 float32 = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482	fmt.Println(f32)	var f64 float64 = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280	fmt.Println(f64)	var c64 complex64 = 1 + 2i	fmt.Println(c64)	var c128 complex128 = 1 + 2i	fmt.Println(c128)}
  • 字符串类型
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
  • 派生类型
指针类型(Pointer)数组类型结构化类型(struct)Channel 类型函数类型切片类型接口类型(interface)Map 类型

对以go的数据类型做了大概了解,接下来就需要通过代码编写,去熟悉数据类型。