Golang环境初始化

2022-12-13 17:44:31 浏览数 (2)

## 环境初始化

```shell

.

├── Readme.md

├── config // 配置文件

├── controller // CLD:服务入口,负责处理路由、参数校验、请求转发

├── service // CLD:逻辑(服务)层,负责业务逻辑处理

├── dao // CLD:负责数据与存储相关功能(mysql、redis、ES等)

│ ├── mysql

│ └── redis

├── model // 模型

├── logging // 日志处理

├── main.go // 项目启动入口

├── middleware // 中间件

├── pkg // 公共服务

├── router // 路由

```

- 推荐访问链接地址: https://golang.google.cn/dl/

> Go的版本更新迭代较快,建议下载最新版本,体验新特性。

通过`go version`查看当前安装的版本

```powershell

PS C:UsersAdministrator.DESKTOP-36OCN81DesktopGo> go version

go version go1.19.1 windows/amd64

```

### GOROOT和GOPATH

`GOROOT`和`GOPATH`都是环境变量,`GOROOT`使我们Go开发包的路径,从1.8版本开始,Go的开发包在完成安装后会给`GOPATH`社会一个默认目录,所以一般不需要我们自己设置,使用默认的即可!

### GOPROXY

1.14版本之后,都推荐使用`go mod `的模式管理依赖,也不需要强制我们把代码写在`GOPATH`下面的`src`目录下,你可以在电脑的任意位置编写go代码。

默认的`GOPROXY`地址是国外的,国内访问不到,建议更换!

```powershell

go env -w GOPROXY=https://goproxy.cn,direct

```

## 插件的选择

- Go for VS Code v0.35.2

## 一个简单的Hello world

- 新建一个`code/Day1/`的目录

新建一个`code/Day1/main.go`的文件

```go

package main // 声明 main 包,表明当前是一个可执行程序

import "fmt" // 导入内置 fmt 包

func main() { // main 函数,是程序的执行入口

fmt.Printf("Hello world!") // 打印Hello world

}

```

## 创建第一个Go程序

- 记录当前的依赖、版本信息、第三方库信息,类似于Python的`requirements.txt`

```cmd

go mod init hello // hello 是你的项目名

go run main.go // 临时目录编译执行

go build // 直接编译成二进制文件

```

### 跨平台编译

如果你是`Windows`并且使用的是`cmd`

```cmd

SET CGO_ENABLED=0 // 禁用CGO

SET GOOS=linux // 目标平台是Linux

SET GOARCH=amd64 // 目标处理器架构是amd64

go build

```

如果你是`Windows`并且使用的是`PowerShell`

```PowerShell

$ENV:CGO_ENABLED=0

$ENV:GOOS=linux

$ENV:GOARCH=amd64

```

如果你是`Linux`平台

```shell

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build

```

如果你是`Mac`平台

- GOOS=Linux/darwin: Linux平台/Mac平台

```shell

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go

```

0 人点赞