go简介及国内镜像源配置全过程

 更新时间:2025年01月25日 16:14:44   作者:Freedom3568  
本文介绍了Go语言的基本概念和环境配置,包括GOROOT、GOPATH和GOMODULE的设置,还展示了如何在IDEA中配置Go语言的开发环境,并通过一个简单的“HelloWorld”项目来熟悉Go语言的基本语法和开发流程

一、Go 语言简介

Go 是一门编译型和静态的编程语言。因为 Go 语言是 2009 年诞生的,比目前市面上主流的编程语言,如 C、C++、Python、Java 都要新,所以它能够基于多种语言,取其精华,去其糟粕。

Go 有很多特性:

  • 内置并发编程支持:协程(goroutine)和通道(channel)
  • 内置映射(map)和切片(slice)类型
  • 支持多态
  • 使用接口来实现装箱(value boxing)和反射(reflection)
  • 支持指针、函数闭包、方法、延迟函数调用(defer)、类型内嵌和推断
  • 自动化的内存管理,即垃圾回收
  • 良好的代码跨平台性
  • 对于有一定编程经验的程序员而言,上手 Go 会非常容易

二、环境配置

这里假设你已经成功安装了 golang,可以在命令行输入 go version 查看已经安装的 golang 的版本信息。

1.GOROOT

在本地环境中添加 GOROOT 配置,值为 golang 安装后的根目录。

Windows 上默认为 C:/go, Mac 电脑默认为/usr/local/go

2.GOPATH

GOPATH 则设置为自己本地所有 Go 项目的根目录。

设置完成后,在 GOPATH 目录下创建三个文件夹 src、bin、pkg。

  • src 主要存放各个项目的源代码,在 src 目录下再创建一个名为 github.com 的文件夹,然后再根据各个项目名称创建对应的项目文件夹。
  • bin 保存的是各类可执行文件,当我们使用 go install 编译项目源码后,生成的项目可执行文件就会保存到 bin 目录中,此外 bin 目录也保存下载的各种扩展工具。
  • pkg 中,mod 文件夹下存放的是 go module 管理的依赖库。

3.国内镜像设置

从 1.13 版本开始 Go 官方就推荐使用 go module 的方式进行依赖管理,但是因为“墙”的存在,导致有些外网的包可能无法下载或者下载速度会很慢,所以需要配置国内的镜像源

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

golang 的国内镜像源:

  • 阿里云:https://mirrors.aliyun.com/goproxy
  • 微软:https://goproxy.io
  • 七牛云:https://goproxy.cn
  • GoCenter:https://gocenter.io

配置完成后可以使用命令 go env 查看配置是否正确。

三、开发工具介绍

开发工具有很多,如 VSCode、IDEA、GoLand。因为我自己也会 Java,而且也习惯了使用 IDEA,好在 IDEA 中也提供了 Go 语言的插件,以方便我们在 IDEA 中从事 Go 语言开发和学习。所以我这里只展示如何在IDEA 上配置GO的开发环境。

在IDEA Plugins中搜索 Go 并下载

检查GOROOT、GOPATH、GOMODULE 的设置

四、Hello World!

项目环境准备

我这里创建了一个名叫 base-study 的项目,使用 go mod init baseStudy 来在项目根目录下创建 go.mod 文件。

此时的 go.mod 文件只标识了文件名和 go 的版本,属于正常情况。

然后我在文件夹下创建第一个 go 源文件:hello_world.go,老规矩了,学习一门语言,从说“Hello World!”开始。

package main

import "fmt"

func main() {
	fmt.Println("Hello World!")
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何利用Golang解析读取Mysql备份文件

    如何利用Golang解析读取Mysql备份文件

    这篇文章主要给大家介绍了关于如何利用Golang解析读取Mysql备份文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Golang具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Go 跨域中间件解决CORS问题

    Go 跨域中间件解决CORS问题

    跨域问题CORS是前端开发人员经常遇到的问题,本文主要介绍了Go 跨域中间件解决CORS问题,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • 一文带你深入理解Golang中的泛型

    一文带你深入理解Golang中的泛型

    Go 在泛型方面一直被诟病,因为它在这方面相对比较落后。但是,在 Go 1.18 版本中,泛型已经被正式引入,成为了 Go 语言中一个重要的特性。本文将会详细介绍 Go 泛型的相关概念,语法和用法,希望能够帮助大家更好地理解和应用这一特性
    2023-05-05
  • Go语言中Goroutine的设置方式

    Go语言中Goroutine的设置方式

    这篇文章介绍了Go语言中Goroutine的设置方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Golang中使用Date进行日期格式化(沿用Java风格)

    Golang中使用Date进行日期格式化(沿用Java风格)

    这篇文章主要介绍了Golang中使用Date进行日期格式化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 这些关于Go中interface{}的注意事项你都了解吗

    这些关于Go中interface{}的注意事项你都了解吗

    这篇文章主要为大家详细介绍了学习Go语言时需要了解的interface{}注意事项,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-03-03
  • Go打印结构体提升代码调试效率实例详解

    Go打印结构体提升代码调试效率实例详解

    这篇文章主要介绍了Go打印结构体提升代码调试效率实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • 300行代码实现go语言即时通讯聊天室

    300行代码实现go语言即时通讯聊天室

    本文主要介绍了300行代码实现go语言即时通讯聊天室,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Golang利用channel协调协程的方法详解

    Golang利用channel协调协程的方法详解

    go 当中的并发编程是通过goroutine来实现的,利用channel(管道)可以在协程之间传递数据,所以本文就来讲讲Golang如何利用channel协调协程吧
    2023-05-05
  • golang读取http的body时遇到的坑及解决

    golang读取http的body时遇到的坑及解决

    这篇文章主要介绍了golang读取http的body时遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03

最新评论