Windows安装Go语言及VScode配置

最近搞自己的网站时突然想起来很多上学时的事,那会美国总统还是奥巴马,网页课教的是DreamWeaver跟Photoshop,其他语言像PHP、Java8、Python都有学一点,讲究一个所见即所得。虽然是信管专业那时和斌桑班长对新语言很感兴趣,现在准备将这些东西再从新学习一遍。

Golang是Google公司在2007年开始开发的一种静态强类型、编译型语言。Go语言被设计成一门简单、高效且可靠的编程语言,旨在解决大规模网络服务和分布式系统开发中的复杂性问题。Go语言结合了动态语言的开发速度和C/C++等编译型语言的性能与安全性,提供了强大的网络编程和并发编程支持。

Golang中文网下载地址:Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com)

我下载的**.msi**格式,下载后直接安装在一个顺眼的地方,安装完成后将Go文件夹里bin文件夹的存储路径添加到环境变量,在安装时会自动生成一个用户变量GOPATH.

随后使用 win + r 打开**amd,**在终端输入:

go version

Golang安装成功,随后再输入以下代码查看Golang的环境变量:

go env

之后打开VScode,下载 GoCode Runner插件,新建一个文件夹,里面在新建三个文件夹

  • src目录:用于以代码包的形式组织并保存Go源码文件。这些源码文件包括库源码文件、命令源码文件和测试源码文件。所有的Go源代码都应该放在这个目录下,这是Go命令行工具的一个强制规则。
  • pkg目录:用于存放经由go install命令构建安装后的代码包(包含Go库源码文件)的".a"归档文件。与GOROOT目录下的pkg功能类似,区别在于,工作目录中的pkg目录专门用来存放用户代码的归档文件。这个目录无需手动创建,如果必要,Go命令行工具go mod init 在构建过程中会自动创建。
  • bin目录:在通过go install命令完成安装后,保存由Go命令源码文件生成的可执行文件。这个目录也是自动创建的,无需手动创建。所谓命令源码文件,就是可以独立运行,可被gobuild或goinstall命令转换成可执行文件。
  • 从Go 1.11开始引入的Go模块改变了这一做法,不再需要显式地设置这些目录,因为模块提供了更好的依赖管理和构建机制,可以将代码直接放在工作区的根目录下。

对于使用Go模块的项目需要,在环境变量中加入 GOPATH指向工作目录 ,但是从Go 1.14版本开始,GOPATH的默认值已经足够好,通常不需要显式设置。

设置好后在VScode终端输入:

go mod init 项目导入路径(cd到新建go项目文件夹的上一级文件夹使用)

这个路径会是你的代码仓库的URL或者是你的项目的导入路径。例如项目托管在GitHub上,并且你的用户名是GGBond,项目名是GGBoy,那么你可以使用github.com/GGBond/GGBoy作为模块路径。

如果只是想在本地使用一个简单的名称,可以

go mod init GGBoy

随后便在文件夹生成 go.mod文件

有些情况需要在终端输入:

set GO111MODULE = on

安装GO语言服务器gopls,用于编译静态文件

go install golang.org/x/tools/gopls@latest

这时可以新建一个**.go** 文件,在里面写入:

package main

import "fmt"

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

点击即可运行。

可以使用go build 来构建你的项目,构建的可执行文件默认会在当前目录下创建。不再需要关心bin目录,因为Go工具会处理这些细节。

go build -o GGBoy GGBond/BigDick.go  

需要添加其他依赖项的话,可以使用 go get

go get github.com/some/dependency

大概的结构

BigDick/  
├── go.mod  
├── main.go  
└── ggboy/  
    └── ggboy.go
相关推荐
Lx35219 分钟前
Pandas高级数据处理:数据流处理
后端·python·pandas
美味小鱼22 分钟前
Rust 的基本类型有哪些,他们存在堆上还是栈上,是否可以COPY?
开发语言·后端·rust
AI量化投资实验室24 分钟前
celery策略回测任务运行及金融量化数据增量更新|年化18.8%,回撤8%的组合策略(python代码)
开发语言·python·金融
Dr.勿忘1 小时前
C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】
开发语言·unity·设计模式·面试·c#·游戏引擎
孔瑾熙1 小时前
Elixir语言的网络编程
开发语言·后端·golang
DARLING Zero two♡1 小时前
C++效率掌握之STL库:string函数全解
开发语言·c++·stl·string
关关钧2 小时前
【R语言】环境空间
开发语言·r语言
YGGP2 小时前
【Go语言圣经】第七节:接口
golang
小袁拒绝摆烂2 小时前
mybatis辅助配置
java·开发语言·mybatis
加油,旭杏3 小时前
【go语言】protobuf 和 grpc
开发语言·后端·golang