Go学习第一章——开发环境安装以及快速入门(GoLand)-CSDN博客

官网https://golang.org/
go sdk下载https://golang.google.cn/dl/
golang中文社区https://studygolang.com/dl
中文社区文档 https://studygolang.com/pkgdoc

一、环境配置

1.1 go开发工具
  • goland
  • IDEA golang插件
  • vscode

推荐使用goland

GoLand官网下载https://www.jetbrains.com/go/download/#section=windows

1.2 go sdk下载

下载安装后windows上会自动添加到环境变量如果使用goland会默认找到sdk的位置。

在这里插入图片描述

使用Installer Windows 可以直接软件安装快一些方便而且自动配置环境变量如果想自己设置也可以

具体参考下面的是链接

Go语言开发环境搭建详细教程+go常见bug合集

Go GOROOT 与 GOPATH 介绍

GOROOTGo 语言安装根目录的路径也就是 GO 语言的安装路径。
GOPATH若干工作区目录的路径。是我们自己定义的工作空间。
GOBINGO 程序生成的可执行文件executable file的路径。

在这里插入图片描述

设置 GOPATH得作用
你可以把 GOPATH 简单理解成 Go 语言的工作目录它的值是一个目录的路径也可以是多个目录路径每个目录都代表 Go 语言的一个工作区workspace。
我们需要利于这些工作区去放置 Go 语言的源码文件source file以及安装install后的归档文件archive file也就是以“.a”为扩展名的文件和可执行文件executable file。

3.1 go相关命令行

(1) 查看go sdk版本

go version

(2) go代码生成exe文件, 执行以下命令会将test.go在当前目录生成test.exe

go build test.go

(3) 直接运行结果不生成exe文件

go run test.go

(4) 指定生成文件的名字

go build -o sever.exe test.go

(5) 命令行格式化代码

gofmt -w test.go

直接运行gofmt test.go只是显示格式化后的代码格式不写道文件里面
(6) go doc 看api说明
查看内置函数delete的说明

go doc builtin.delete 

二、快速入门

2.1 创建项目

这里使用GoLand作为开发工具讲解

选择我们的 New Project 那么我们就会看到如下界面

在这里插入图片描述

选择 Go 项目如果选择带有 GOPATH 标记的则表示将项目默认创建在你配置好的 GOPATH 空间下

在 GoLand 中一个项目就可以作为一个工作空间所以选择 Go 则表示要将这个新建的项目作为一个独立的工作空间进行开发

Location: 表示当前项目的位置

GOROOT: 表示你GO环境的开发包安装位置这个如果在环境变量已经配置好的情况下会自动帮你填写如果没配置建议先配置好环境变量。

Environment: Go 的一些 mod 可能需要外网下载因为一些不可描述的原因我们无法访问因此可以通过配置 GOPROXY 代理来改变代理成国内的下载代理这个可以暂时先不配置。

想写可以直接填入GOPROXY=https://goproxy.cn,direct

创建成功如下

在这里插入图片描述

2.2 创建.go程序文件

这里我们可以简单尝试一下

在这里插入图片描述

  • 创建 Simple application 会得到一个带有简单 main 函数的文件这是一个程序的入口

创建的好的代码如下在这里插入图片描述

2.3.配置 mod 的开启与关闭

在我们的本地环境中我们可以通过指令来配置 go mod 模块管理的开启与关闭而在我们的 Goland 中我们也可以通过设置来改变 go mod 的启用我们在使用 Goland 的时候可以开启 go mod

  • Preferences ->Go ->Go Modules 进行设置如下

在这里插入图片描述

关于代理 因我我们众所周知一些原因所以代理可以修改为国内方便获取资源留下以下几种资源地址

注意代理修改完重启 GoLand 生效
阿里云https://mirrors.aliyun.com/goproxy/
nexus 社区提供的https://gonexus.dev
goproxy.io 的https://goproxy.io/
官方提供的https://proxy.golang.org
七牛云赞助支持的https://goproxy.cn
是否使用 go mod 的区别

  • 开启modgo env -w GO111MODULE=on 会将包下载到 gopath 下的 pkg 下的 mod 文件夹中
  • 关闭modgo env -w GO111MODULE=off 会将包下载到 gopath 下的 src 下
  • go env GO111MODULE=auto 只有当前目录在 GOPATH/src 目录之外而且当前目录包含 go.mod 文件或者其子目录包含 go.mod文件才会启用rticle/details/128001422
2.4 用 GoLand 写第一份代码

在刚刚我们已经新建了一个带有 main.go 文件那么我们接下来就需要在 main() 中写下我们的第一份代码 Goland 是相对比较智能的很多基础包不需要你去写 import 你只需要直接写你要的工具模块它就会自动帮你导入相关的模块。

在这里插入图片描述

  • 点击运行右上角的这个标志或者右键运行

在这里插入图片描述

  • 运行结果

在这里插入图片描述

2.5.代码静态检测此部分非必要

我们之前有说过Go 语言对于代码的检测和格式是有自己官方的统一规范和自动化的所以就减少了出现不同程序不同的代码风格导致相互之间可阅读性降低的问题。

使用 GoLand 编写 Go 代码时可以配合 gofmt + goimports + golangci-lint 在保存时完成对代码的格式化和质量检测。

  • 开启 go fmt: 在每次保存代码文件时自动格式化代码。

File > Settings > Tools > File Watchers > + > go fmt

在这里插入图片描述

  • 开启 goimports 在每次保存代码时自动添加缺失的和删除未引用的包。

File > Settings > Tools > File Watchers > + > goimports

如果遇到 `tools` 工具没安装 `Goland` 则会提醒你安装

在这里插入图片描述

​ 如果安装失败则可能是国内代理的原因请修改代理这里不再重复赘述可参考前一篇文章内容

  • **开启 golandci-lint: ** 开启 golangci-lint 可以对代码进行静态检查比如报告函数行数超标、文件行数超标等来帮助规范代码

File > Settings > Tools > File Watchers > + > golangci-lint

在这里插入图片描述

  • 工具安装完毕

三、初步了解

3.1 代码解释以及编译

前面的代码每一行详解如下

在这里插入图片描述

下一步我们进行编译

  • 来到文件的源文件下

在这里插入图片描述

  • 打开cmd运行go build test.go ,然后会发现生成了一个.exe文件可以直接运行会发现输出对应的内容

在这里插入图片描述

3.2 Golang执行流程

执行流程分析

在这里插入图片描述

上述两种执行流程的方式区别

  • 在编译时编译器会将程序运行依赖的库文件包含在可执行文件中所以可执行文件
    变大了很多。

在这里插入图片描述

  • 如果我们先编译生成了可执行女件那么我们可以将该可执行文件拷贝到没有go开发环境的机器上仍然可以运行

  • 如果我们是直接go run go源代码那么如果要在另外一个机器上这么运行也需要go开发环境否则无法执行。

  • go run运行时间明显要比第一种方式 长一点点

  • 编译后的文件可以另外指定名字

在这里插入图片描述

3.3 语法注意事项

1源文件以"go"为扩展名。
2程序的执行入口是main()函数。
3严格区分大小写。
4方法由一条条语句构成每个语句后不需要分号(Go语言会在每行后自动加分号)这也体现出Golang的简洁性。其实可以自己写分号例如一行某一段结束价格分号再接其他的也是OK的这样相当于两条语句
5Go编译器是一行行进行编译的因此我们一行就写一条语句不能把多条语句写在同一个否则报错
6定义的变量或者import的包如果没有使用到代码不能编译通过。
7大括号都是成对出现的缺一不可

3.4 注释

Go支持c语言风格的**/* */块注释也支持c++风格的//**行注释。行注释更通用块注释主要用于针对包的详细说明或者屏蔽大块的代码
1行注释 // GoLand快捷键ctrl+/ 再按一次取消注释
2块注释多行注释 / * */ GoLand快捷键ctrl+shift+/ 再按一次取消注释

注意块注释中不可以嵌套块注释

提示官方推荐使用行注释 //

3.5 代码风格
  1. 注意缩进

    • 向后缩进tab
    • 向前取消缩进shift+tab

    可以通过命令行实现

    • gofmt test.go仅展示数据不改变原数据

    • gofmt -w test.go更改原代码的缩进情况

    **GoLand软件自带快捷键Ctrl+Alt+L **

  2. 成对编程 {} “” ‘’

  3. 运算符两边加空白

在这里插入图片描述

  1. 注释官方推荐行注释//
  2. 以下代码是错误的

在这里插入图片描述

  1. 行长约定

    一行最长不超过80个字符超过的请使用换行展示尽量保持格式优雅

    • 错误方式

在这里插入图片描述

  • 正确方式使用,进行拼接)

在这里插入图片描述

3.6 API

在这里插入图片描述

Go语言提供了大量的标准库因此 google 公司也为这些标准库提供了相应的API文档用于告诉开发者如何使用这些标准库以及标准库包含的方法。官方位置https://golang.org

Golang中文网在线标准库文档: https://studygolang.com/pkgdoc
在这里插入图片描述

函数对应的源码查看

在这里插入图片描述

也可以使用离线API这里略~~~~
97726997615)]

Go语言提供了大量的标准库因此 google 公司也为这些标准库提供了相应的API文档用于告诉开发者如何使用这些标准库以及标准库包含的方法。官方位置https://golang.org

Golang中文网在线标准库文档: https://studygolang.com/pkgdoc

[外链图片转存中…(img-XYf2WQpH-1697726997615)]函数对应的源码查看

[外链图片转存中…(img-RMsNmwtC-1697726997615)]

也可以使用离线API这里略~~~~

这样就成功入门啦冲冲冲

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go