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代码的主要内容,如果未能解决你的问题,请参考以下文章

Go语言自学系列 | golang数组

Go语言自学系列 | golang标准库bytes

Go语言自学系列 | golang高阶函数

Go语言自学系列 | golang构造函数

Go语言自学系列 | 高效golang开发

Go语言自学系列 | golang继承