Go语言的学习笔记2——Go语言源文件的结构布局

用一个只有main函数的go文件来简单说一下Go语言的源文件结构布局,主要分为包名、引入的包和具体函数。下边是main.go示例代码:

package main

import "fmt"

func main() {
fmt.Println("hello, world")
}

package main就是表明这个文件所在的包是mainimport "fmt"表明从从fmt这个包路径引入文件到当前文件里边,而func main(){}就是在当前文件定义了一个main函数,真正执行功能的地方。fmt.Println("hello, world")中的fmt是包名,与上边import "fmt"fmt包路径是不一样的。先使用go build main.go编译一下,./main执行之后输出了hello, world
在这里插入图片描述

可以看到语句之后没有;,而且文件也没有格式缩进,不过在go中有专门对源文件进行格式化的工具gofmt,比如你可以go fmt main.go格式化源文件。
Go语言的学习笔记2——Go语言源文件的结构布局_第1张图片
gofmt main.go只能把格式化的内容显示出来,不会在源文件上更改,可以试一下。

在一个函数引用其他包里边的函数时,需要先使用包路径引入包,之后使用包名加函数使用。比如下方的代码:

package main

import "github.com/sirupsen/logrus"

func main() {
logrus.SetLevel(logrus.TraceLevel)
logrus.SetFormatter(&logrus.TextFormatter{
                FullTimestamp:   true,
                TimestampFormat: "2022-07-17 00:00:00.000",
})
logrus.Trace("你好,整个世界")
}

可以看到import "github.com/sirupsen/logrus"就是使用包路径引入包,logrus.Println()就是包名加函数。
go fmt importTest.go先格式化一下源文件。
使用go build importTest.go编译的时候报错如下:

importTest.go:3:8: no required module provides package github.com/sirupsen/logrus: go.mod file not found in current directory or any parent directory; see 'go help modules'

在这里插入图片描述

这里就需要使用Go module的功能了。
mkdir importTest创建一个目录,然后mv importTest.go importTest/main.go把上边importTest.go复制到importTest目录里边,并且更名为main.go
Go语言的学习笔记2——Go语言源文件的结构布局_第2张图片

go mod init importTest就会在当前目录里边生成了go.modls -l看一下当前目录内容。
Go语言的学习笔记2——Go语言源文件的结构布局_第3张图片

cat go.mod看一下具体内容。
在这里插入图片描述

go build importTest进行构建,发现报错:

main.go:3:8: no required module provides package github.com/sirupsen/logrus; to add it:
        go get github.com/sirupsen/logrus

在这里插入图片描述

go mod tidy让Go工具自动添加依赖包。
Go语言的学习笔记2——Go语言源文件的结构布局_第4张图片

ls -l可以看一下当前目录里边的内容,发现多了一个go.sum文件,cat go.mod可以看到内容。
Go语言的学习笔记2——Go语言源文件的结构布局_第5张图片

cat go.sum看一下go.sum的内容。
Go语言的学习笔记2——Go语言源文件的结构布局_第6张图片

go build importTest构建,./importTest执行输出为TRAC[242424+08-117 00:00:00.825] 你好,整个世界
在这里插入图片描述

此文章为11月Day 24学习笔记,内容来源于极客时间《Tony Bai · Go 语言第一课》。

你可能感兴趣的:(go学习,golang,学习,笔记)