Golang学习-环境搭建

前言

本文主要是为了笔者学习Golang(以下简称Go或者go)的一个记录

开发环境安装包

Golang官网下载安装即可使用,笔者使用的版本是 1.20.7

GOROOT、GOPATH 和 Go Modules

在正式开始编码前,先简单介绍一下Go的两个环境变量(GOROOTGOPATH)和依赖管理工具(Go Modules),方便对项目的结构有初步的了解

GOROOT

指Go的安装目录,因为在安装Go时已经自动将Go的bin目录配置进path环境变量里面了,所以GOROOT不强制配置

GOPATH

GOPATH 是指向 Go 代码的工作空间(Workspace)的环境变量。工作空间是一个目录,在其中存放了 Go 项目的源码文件和二进制文件。GOPATH 可以包含多个目录,每个目录代表一个工作空间。

在 GOPATH 下会有三个重要的子目录:

src:用于存放 Go 源代码文件。
pkg:用于存放编译后的包对象文件。
bin:用于存放编译后的可执行文件。
GOPATH 的设置对于构建、运行和安装 Go 项目非常重要。它指示 Go 工具在哪里查找和存放代码及其相关的构建输出。

需要注意的是,Go 1.11 版本及以后的版本不再强制要求将项目放在 GOPATH 下。可以使用 Go Modules 管理依赖和项目,不再依赖于 GOPATH 的设置。但对于旧版本的项目或一些特殊需求,仍然可能需要设置和使用 GOPATH。

总结来说,GOROOT 是指向 Go 语言的安装目录,而 GOPATH 是指向 Go 代码的工作空间,用于存放源码和构建输出。

Go Modules

以上已经介绍过 Go Modules,它是Go的依赖管理工具,是在Go1.11版本引入的,所以使用Go Modules时请注意自己的Go版本在1.11以上
在项目根目录下执行以下命令即可初始化Go Modules

go mod init <module-name>

这个命令会创建一个 go.mod 文件,其中 是你的项目名称。该文件用于记录项目的模块依赖关系。
关于Go Modules后续会详细学习

Hello World

接下来我们尝试编写我们的第一个项目,新建一个 hello.go的文件编写以下代码

package main

import "fmt"

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

一些说明

我们把以上代码分为三个部分,每个源文件都以一条package声明语句开始,这个例子里就是package main,表示该文件属于哪个包,紧跟着一系列导入import的包,之后是存储在这个文件里的程序语句。

Go的标准库提供了100多个包,以支持常见功能,如输入、输出、排序以及文本处理。比如fmt包,就含有格式化输出、接收输入的函数。Println是其中一个基础函数,可以打印以空格间隔的一个或多个值,并在最后添加一个换行符,从而输出一整行。

main包比较特殊。它定义了一个独立可执行的程序,而不是一个库。在main包里的main函数也很特殊,它是整个程序执行时的入口(C系语言差不多都这样)。main函数所做的事情就是程序做的。当然了,main函数一般调用其它包里的函数完成工作, 比如, fmt.Println。

必须告诉编译器源文件需要哪些包,这就是跟随在package声明后面的import声明扮演的角色。hello world例子只用到了一个包,大多数程序需要导入多个包。

必须恰当导入需要的包,缺少了必要的包或者导入了不需要的包,程序都无法编译通过。这项严格要求避免了程序开发过程中引入未使用的包

import声明必须跟在文件的package声明之后。随后,则是组成程序的函数、变量、常量、类型的声明语句(分别由关键字func, var, const, type定义)。这些内容的声明顺序并不重要

Go语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句。实际上,编译器会主动把特定符号后的换行符转换为分号, 因此换行符添加的位置会影响Go代码的正确解析(译注:比如行末是标识符、整数、浮点数、虚数、字符或字符串文字、关键字break、continue、fallthrough或return中的一个、运算符和分隔符++、–、)、]或}中的一个)。举个例子, 函数的左括号{必须和func函数声明在同一行上, 且位于末尾,不能独占一行,而在表达式x + y中,可在+后换行,不能在+前换行(以+结尾的话不会被插入分号分隔符,但是以x结尾的话则会被分号分隔符,从而导致编译错误)。

运行

go run hello.go

go run 命令 编译并执行文件

打包

go build hello.go

go build 此时会得到该项目的可执行文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值