go簡介及國內(nèi)鏡像源配置全過程
一、Go 語言簡介
Go 是一門編譯型和靜態(tài)的編程語言。因為 Go 語言是 2009 年誕生的,比目前市面上主流的編程語言,如 C、C++、Python、Java 都要新,所以它能夠基于多種語言,取其精華,去其糟粕。
Go 有很多特性:
- 內(nèi)置并發(fā)編程支持:協(xié)程(goroutine)和通道(channel)
- 內(nèi)置映射(map)和切片(slice)類型
- 支持多態(tài)
- 使用接口來實現(xiàn)裝箱(value boxing)和反射(reflection)
- 支持指針、函數(shù)閉包、方法、延遲函數(shù)調(diào)用(defer)、類型內(nèi)嵌和推斷
- 自動化的內(nèi)存管理,即垃圾回收
- 良好的代碼跨平臺性
- 對于有一定編程經(jīng)驗的程序員而言,上手 Go 會非常容易
二、環(huán)境配置
這里假設(shè)你已經(jīng)成功安裝了 golang,可以在命令行輸入 go version 查看已經(jīng)安裝的 golang 的版本信息。
1.GOROOT
在本地環(huán)境中添加 GOROOT 配置,值為 golang 安裝后的根目錄。
Windows 上默認(rèn)為 C:/go, Mac 電腦默認(rèn)為/usr/local/go
2.GOPATH
GOPATH 則設(shè)置為自己本地所有 Go 項目的根目錄。
設(shè)置完成后,在 GOPATH 目錄下創(chuàng)建三個文件夾 src、bin、pkg。
- src 主要存放各個項目的源代碼,在 src 目錄下再創(chuàng)建一個名為 github.com 的文件夾,然后再根據(jù)各個項目名稱創(chuàng)建對應(yīng)的項目文件夾。
- bin 保存的是各類可執(zhí)行文件,當(dāng)我們使用 go install 編譯項目源碼后,生成的項目可執(zhí)行文件就會保存到 bin 目錄中,此外 bin 目錄也保存下載的各種擴(kuò)展工具。
- pkg 中,mod 文件夾下存放的是 go module 管理的依賴庫。
3.國內(nèi)鏡像設(shè)置
從 1.13 版本開始 Go 官方就推薦使用 go module 的方式進(jìn)行依賴管理,但是因為“墻”的存在,導(dǎo)致有些外網(wǎng)的包可能無法下載或者下載速度會很慢,所以需要配置國內(nèi)的鏡像源
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
golang 的國內(nèi)鏡像源:
- 阿里云:https://mirrors.aliyun.com/goproxy
- 微軟:https://goproxy.io
- 七牛云:https://goproxy.cn
- GoCenter:https://gocenter.io
配置完成后可以使用命令 go env 查看配置是否正確。
三、開發(fā)工具介紹
開發(fā)工具有很多,如 VSCode、IDEA、GoLand。因為我自己也會 Java,而且也習(xí)慣了使用 IDEA,好在 IDEA 中也提供了 Go 語言的插件,以方便我們在 IDEA 中從事 Go 語言開發(fā)和學(xué)習(xí)。所以我這里只展示如何在IDEA 上配置GO的開發(fā)環(huán)境。
在IDEA Plugins中搜索 Go 并下載
檢查GOROOT、GOPATH、GOMODULE 的設(shè)置
四、Hello World!
項目環(huán)境準(zhǔn)備
我這里創(chuàng)建了一個名叫 base-study 的項目,使用 go mod init baseStudy 來在項目根目錄下創(chuàng)建 go.mod 文件。
此時的 go.mod 文件只標(biāo)識了文件名和 go 的版本,屬于正常情況。
然后我在文件夾下創(chuàng)建第一個 go 源文件:hello_world.go,老規(guī)矩了,學(xué)習(xí)一門語言,從說“Hello World!”開始。
package main import "fmt" func main() { fmt.Println("Hello World!") }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Golang中使用Date進(jìn)行日期格式化(沿用Java風(fēng)格)
這篇文章主要介紹了Golang中使用Date進(jìn)行日期格式化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04這些關(guān)于Go中interface{}的注意事項你都了解嗎
這篇文章主要為大家詳細(xì)介紹了學(xué)習(xí)Go語言時需要了解的interface{}注意事項,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-03-03Go打印結(jié)構(gòu)體提升代碼調(diào)試效率實例詳解
這篇文章主要介紹了Go打印結(jié)構(gòu)體提升代碼調(diào)試效率實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-02-02Golang利用channel協(xié)調(diào)協(xié)程的方法詳解
go?當(dāng)中的并發(fā)編程是通過goroutine來實現(xiàn)的,利用channel(管道)可以在協(xié)程之間傳遞數(shù)據(jù),所以本文就來講講Golang如何利用channel協(xié)調(diào)協(xié)程吧2023-05-05