Web Design 2 : Content Organization & Link Content using go template
第一种,指定变量类型,如果没有初始化,则变量默认为零值。
1 | //var v_name v_type |
1 | //特殊 |
第二种,根据值自行判定变量类型。
1 | //var v_name = value |
第三种,使用声明符号:=
但是如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误,格式:
1 | v_name := value |
1 | for key, value := range oldMap { |
Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可。
goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。
goroutine 语法格式:go 函数名( 参数列表 )
Go 允许使用 go 语句开启一个新的运行期线程, 即 goroutine,以一个不同的、新创建的 goroutine 来执行一个函数。 同一个程序中的所有 goroutine 共享同一个地址空间。
通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯。操作符 <- 用于指定通道的方向,发送或接收。如果未指定方向,则为双向通道。
1 | ch <- v // 把 v 发送到通道 ch |
声明一个通道很简单,我们使用chan关键字即可,通道在使用前必须先创建:
1 | ch := make(chan int) |
1 | func countGoodRectangles(rectangles [][]int) int { |
https://github.com/swangeese/acsa-web/tree/webhook
暂无
暂无
1 | wget https://go.dev/dl/go1.18.3.linux-amd64.tar.gz |
1 | $ cd $HOME/go/src/hello |
Packages
Go packages are folders that contain one more go files.
Modules
A modules (starting with vgo and go 1.11) is a versioned collection of packages.
1 | go get github.com/andanhm/go-prettytimee |
go list -m -u all
来检查可以升级的package,
使用go get -u need-upgrade-package
升级后会将新的依赖版本更新到go.mod
也可以使用 go get -u
升级所有依赖
作者:若与
链接:https://www.jianshu.com/p/760c97ff644c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
暂无
暂无
go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
1 | mkdir Gone |
对应go.mod
文件
1 | module Gone |
go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。
go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。
go.mod 提供了module, require、replace和exclude 四个命令
module 语句指定包的名字(路径)
require 语句指定的依赖项模块
replace 语句可以替换依赖项模块
exclude 语句可以忽略依赖项模块
对于main.go
里的import
1 | package main |
执行 go run main.go
运行代码会发现 go mod
会自动查找依赖自动下载,并修改go.mod
(安装 package 的原則是先拉最新的 release tag,若无tag则拉最新的commit)
结合github很简单实现
暂无
暂无