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!")
}

总结

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

相关文章

  • Go语言实现登录验证代码案例

    Go语言实现登录验证代码案例

    这篇文章主要介绍了Go语言实现登录验证代码案例,代码和图文讲解的很清晰,有感兴趣的可以学习下
    2021-03-03
  • golang中如何保证精度的方法

    golang中如何保证精度的方法

    本文主要介绍了golang中如何保证精度的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Golang实现多存储驱动设计SDK案例

    Golang实现多存储驱动设计SDK案例

    这篇文章主要介绍了Golang实现多存储驱动设计SDK案例,Gocache是一个基于Go语言编写的多存储驱动的缓存扩展组件,更多具体内容感兴趣的小伙伴可以参考一下
    2022-09-09
  • 基于go实例网络存储协议详解

    基于go实例网络存储协议详解

    这篇文章主要为大家介绍了基于go实例网络存储协议详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 理解Golang中的数组(array)、切片(slice)和map

    理解Golang中的数组(array)、切片(slice)和map

    这篇文章主要介绍了理解Golang中的数组(array)、切片(slice)和map,本文先是给出代码,然后一一分解,并给出一张内图加深理解,需要的朋友可以参考下
    2014-10-10
  • go程序测试CPU占用率统计ps vs top两种不同方式对比

    go程序测试CPU占用率统计ps vs top两种不同方式对比

    这篇文章主要为大家介绍了go程序测试CPU占用率统计ps vs top两种不同方式对比,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 详解Golang中的各种时间操作

    详解Golang中的各种时间操作

    这篇文章主要介绍了详解Golang中的各种时间操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Go语言中的Slice学习总结

    Go语言中的Slice学习总结

    这篇文章主要介绍了Go语言中的Slice学习总结,本文讲解了Slice的定义、Slice的长度和容量、Slice是引用类型、Slice引用传递发生“意外”等内容,需要的朋友可以参考下
    2014-11-11
  • Go语言LeetCode题解682棒球比赛

    Go语言LeetCode题解682棒球比赛

    这篇文章主要为大家介绍了Go语言LeetCode题解682棒球比赛示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • go variant底层原理深入解析

    go variant底层原理深入解析

    这篇文章主要为大家介绍了go variant底层原理深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论