学习笔记记录了我在学习官方文档过程中记的要点,可以参考学习。
go build *.go 文件 编译
go run *.go 执行
go mod init 生成依赖管理文件
gofmt -w *.go 格式换
package main //注意package的命名,作为主包
import "fmt"
func main() {
fmt.Println("hello word")
}
go mod init example/hello
go run .
go env
go mod edit -replace learn/greetings=../greetings
go mod tidy
go 1.22.0
use(
./basic
./greetings
)
you initialize a map with the following syntax: make(map[key-type]value-type)
单元测试
Test function names have the form TestName,
查看已经安装的包
D:\1workspace_go\greetings>go list
learn/greetings
D:\1workspace_go\greetings>go list all
go get .
或
go get example.com/theirmodule
go get example.com/[email protected]
go get example.com/theirmodule@latest
To get the module at a specific commit, append the form @commithash:
$ go get example.com/theirmodule@4cf76c2
To get the module at a specific branch, append the form @branchname:
$ go get example.com/theirmodule@bugfixes
修改依赖下载源
GOPROXY="https://proxy.golang.org,direct"
不使用proxy下载
The GOPRIVATE or GONOPROXY environment variables may be set to
lists of glob patterns matching module prefixes
that are private and should not be requested from any proxy.
For example:
GOPRIVATE=*.corp.example.com,*.research.example.com
go list -m -u all
go list -m -u example.com/theirmodule
https://golang.google.cn/tour
数组
func main() {
var a [2]string
a[0] = "Hello"
a[1] = "World"
fmt.Println(a[0], a[1])
fmt.Println(a)
primes := [6]int{2, 3, 5, 7, 11, 13}
fmt.Println(primes)
}
package main
import (
"math/rand"
"golang.org/x/tour/pic"
)
func Pic(dx, dy int) [][]uint8 {
pic := make([][]uint8, dx)
for x := range pic {
pic[x] = make([]uint8, dy)
for y := range pic[x] {
pic[x][y] = uint8(rand.Intn(255))
}
}
return pic
}
func main() {
pic.Show(Pic)
}
for key, value := range myMap {
fmt.Println("Key:", key, "Value:", value)
}
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
le:=-1
ri:=1
return func()int{
fib:=le+ri
le=ri
ri=fib
return fib
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}