Go语言自学系列 | 如何编写golang代码
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言自学系列 | 如何编写golang代码相关的知识,希望对你有一定的参考价值。
视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客
代码组织
go应用使用包和模块来组织代码,包对应到文件系统就是文件夹,模块就是**.go**的go源文件。一个包中会有多个模块,或者多个子包。
go项目管理工具
早期的go项目使用gopath来管理项目,不方便而且容易出错,从 golang 1.11 开始使用gomod管理项目,当然还有第三方模块例如govendor,我们给大家介绍gomod的使用
创建一个应用
1.首先,创建一个模块路径,例如:duoke360.com/pro01,前缀一般为域名
2.在该目录中执行 go mod init duoke360.com/pro01,该命令会创建一个go.mod文件,内容如下:
module duoke360.com/pro01
go 1.16
3.在hello文件夹中创建一个test.go文件内容如下:
package main
import "fmt"
func main()
fmt.Println("hello world")
4.构建并安装程序,执行如下命令,该命令会在GOPATH或者GOBIN环境变量下面创建一个hello.exe可执行文件
go install duoke360.com/pro01
5.执行,输入pro01,运行结果如下
PS D:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01> pro01
hello world
6.创建子包,创建一个morestrings子包,就是创建一个子文件夹,在pro01目录下面
7.创建一个子模块,morestrings.go,内容如下:
package morestrings
func ReverseRunes(s string) string
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1
r[i], r[j] = r[j], r[i]
return string(r)
8.切换到子包目录下面,执行编译
go build
9.在test.go中导入子模块
s := morestrings.ReverseRunes("test")
fmt.Printf("s: %v\\n", s)
10.安装
go install duoke360.com/pro01
11.执行
[Running] go run "d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"
hello world
s: tset
12.导入网络模块,查找地址:https://pkg.go.dev/
package main
import (
"fmt"
"duoke360.com/pro01/morestrings"
"github.com/google/go-cmp/cmp"
)
func main()
fmt.Println("hello world")
s := morestrings.ReverseRunes("test")
fmt.Printf("s: %v\\n", s)
fmt.Println(cmp.Diff("Hello World", "Hello Go"))
13.执行命令,go mod tidy,查看go.mod变量
module duoke360.com/pro01
go 1.16
require github.com/google/go-cmp v0.5.7
14.安装
go install duoke360.com/pro01
15.执行pro01
PS D:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01> pro01
hello world
s: tset
string(
- "Hello World",
+ "Hello Go",
)
以上是关于Go语言自学系列 | 如何编写golang代码的主要内容,如果未能解决你的问题,请参考以下文章