Go语言学习笔记:从入门到精通
发表时间: 2023-11-17 22:47
最近对golang比较感兴趣。对于高性能、云原生。具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。准备开始学习,打卡第一天
学习内容:
学习系统环境deepin社区版本20.9
安装包下载地址为:https://go.dev/dl/。
如果打不开可以使用这个地址:
https://golang.google.cn/dl/。
下载好最新版本
tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
配置环境变量。编辑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: 代码静态检查,报告代码中的语法错误
布尔值 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的数据类型做了大概了解,接下来就需要通过代码编写,去熟悉数据类型。