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