golang

JOBCHER BLOG
Golang 初识(安装、使用)
Golang 初识(安装、使用) Go 导学 go 语言由 google 公司推出。 运行速度快,简单易学 适合区块链开发 拥有丰富指令 可以直接包含 C 语言 语言层面支持并发 Go 方向 网络编程 服务器编程 区块链开发 环境安装 安装环境 安装包下载 https://golang.google.cn/dl/ windows 部署 1wget https://golang.google.cn/dl/go1.19.1.windows-amd64.msi 2# 直接安装 GOPATH 设置 在环境变量 PATH 上直接配置安装地址 编写第一个程序 1package main 2 3import "fmt" 4 5func main() { 6 fmt.Println("Hello World!") 7}
JOBCHER BLOG
go Struct 结构体
go Struct 结构体 结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。 声明结构体 1//demo_11.go 2package main 3 4import ( 5 "fmt" 6) 7 8type Person struct { 9 Name string 10 Age int 11} 12 13func main() { 14 var p1 Person 15 p1.Name = "Tom" 16 p1.Age = 30 17 fmt.Println("p1 =", p1) 18 19 var p2 = Person{Name:"Burke", Age:31} 20 fmt.Println("p2 =", p2) 21 22 p3 := Person{Name:"Aaron", Age:32} 23 fmt.Println("p2 =", p3) 24 25 //匿名结构体 26 p4 := struct { 27 Name string 28 Age int 29 } {Name:"匿名", Age:33} 30 fmt.
JOBCHER BLOG
go Slice切片语法
go Slice 切片语法 切片是一种动态数组,比数组操作灵活,长度不是固定的,可以进行追加和删除。 len() 和 cap() 返回结果可相同和不同。 声明切片 1//demo_7.go 2package main 3 4import ( 5 "fmt" 6) 7 8func main() { 9 var sli_1 [] int //nil 切片 10 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_1),cap(sli_1),sli_1) 11 12 var sli_2 = [] int {} //空切片 13 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_1),cap(sli_2),sli_2) 14 15 var sli_3 = [] int {1, 2, 3, 4, 5} 16 fmt.Printf("len=%d cap=%d slice=%v\n",len(sli_3),cap(sli_3),sli_3) 17 18 sli_4 := [] int {1, 2, 3, 4, 5} 19 fmt.
JOBCHER BLOG
go 基础知识
go 基础知识 目录结构 1├─ code -- 代码根目录 2│ ├─ bin 3│ ├─ pkg 4│ ├─ src 5│ ├── hello 6│ ├── hello.go bin 存放编译后可执行的文件。 pkg 存放编译后的应用包。 src 存放应用源代码。 Hello World 代码 1//在 hello 目录下创建 hello.go 2package main 3 4import ( 5 "fmt" 6) 7 8func main() { 9 fmt.Println("Hello World!") 10} 基础命令 1go build hello 2#在src目录或hello目录下执行 go build hello,只在对应当前目录下生成文件。 3go install hello 4#在src目录或hello目录下执行 go install hello,会把编译好的结果移动到 $GOPATH/bin。 5go run hello 6#在src目录或hello目录下执行 go run hello,不生成任何文件只运行程序。 7go fmt hello 8#在src目录或hello目录下执行 go run hello,格式化代码,将代码修改成标准格式。 数据类型 类型 表示 备注 字符串 string 只能用一对双引号("")或反引号(``)括起来定义,不能用单引号(’’)定义! 布尔 bool 只有 true 和 false,默认为 false。 整型 int8 uint8 int16 uint16 int32 uint32 int64 uint64 int uint 具体长度取决于 CPU 位数。 浮点型 float32 float64 常量声明 常量,在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。
JOBCHER BLOG
Golang go build 编译不同版本
Golang go build 编译不同系统下的可执行文件 Mac 系统编译 1CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go 2CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go Linux 系统编译 1CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go 2CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go windows 系统编译 1SET CGO_ENABLED=0 SET GOOS=darwin3 SET GOARCH=amd64 go build test.go 2SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build test.go GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm