Golang - 簡介、環境搭建、設置代理


Golang的官方網站:https://golang.org/
如因不可抗力因素,可以使用備用網站:https://golang.google.cn/


Golang的一些基本特性

  • 靜態、強類型、編譯型語言
  • 安全、性能強
  • 弱化的指針
    指針比較難,Golang對其進行了簡化,俗稱弱化的指針
    體驗一個指針案例:
//golang函數的參數格式:形參名寫在前面,數據類型寫在后面
//在數據類型前面加上星花符號(*)就是一個指針類型了
func testPtr(num *int) {
	*num = 20 //用星花符號取得指針所指向的值
}
  • 包的概念
    包用於組織管理程序結構、代碼文件和項目的管理,以包的形式來管理源代碼文件和函數。每一個Go文件都要在一個包中,而不能單獨存在!如果一個文件不屬於一個包,那么就會報錯!
    如下圖所示,不指定包名,就會報錯:

    說白了,一個包就是一個文件夾。需要注意的是:一個包下面,只能有一個main函數
  • 垃圾回收機制,內存自動回收
    C語言是需要程序猿自己去手動管理內存回收,稍不注意就會引發內存泄漏(很快吃光內存)
  • 天生自帶並發
    從語言層面就支持並發,實現簡單,有效利用多核CPU的性能
  • 吸收了管道通信機制channel
    實現了不同的goroute之間的相互通信
  • 函數可以返回多個值
    體驗代碼:
//第二個括號中放入返回值的類型
func getSumAndSub(n1 int, n2 int) (int, int) {
	sum := n1 + n2
	sub := n1 - n2

	return sum, sub
}
  • 完全支持UTF-8
    不僅體現在Golang可以處理使用UTF-8編碼的字符串,就連它的源碼文件格式都是使用UTF-8編碼,真正地做到了國際化!
  • 其他的創新
    切片(slice),對底層數據的引用。
    延遲執行(defer),在函數中更加及時、方便地回收資源。函數執行完了,再去執行defer中的代碼。
  • Go = C + Python
    既有編譯型語言的安全和性能,又有動態語言的開發效率。針對上面的公式,有一個誇大的說法:C的性能,Python的開發效率


Golang的應用領域

  • 區塊鏈最主流的編程語言
    區塊鏈技術(Blockchain Technology:BT),分布式賬本技術,互聯網數據庫技術。其特點是去中心化、公開透明,讓每個人均可參與數據記錄。
  • 后台的服務應用
    美團后台流量支撐、網友仙俠道、B站后台……
  • 雲計算/雲服務后台應用
    盛大雲CDN(內容分發網絡);京東消息推送雲服務/京東分布式文件系統;
    七牛雲,有些資料上說七牛雲是大陸最早用Golang做后台的互聯網企業,2011年Golang語法還未穩定時,七牛雲就使用Golang了;


對程序的概述

什么是程序?為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合。
如何指揮電腦?人不能直接指揮電腦,那么就先編寫源代碼,然后對源代碼進行編譯處理得到一個二進制的可執行文件,電腦可以運行這個二進制可執行文件。也就是:把要執行的一組指令交給電腦,電腦會去逐條執行指令。


一、安裝Golang

Golang的下載網站:https://golang.google.cn/dl/
官方推薦的安裝方式:使用壓縮包+配置環境變量的方式搭建Golang開發環境。
使用壓縮包的好處就是當今后,Go有新的版本時,把新版本的壓縮包下載下來、解壓、覆蓋,即可。不用再重新安裝了。

1.Windows安裝篇

1.1 下載壓縮包

根據系統的位數選擇對應的壓縮包即可。后綴以zip結尾的就是適用於Windows環境下的壓縮包。

1.2 解壓

找一個合適的路徑,將壓縮包解壓開即可。
注意:路徑中不要出現任何非英文字符、空格、特殊符號!。官方推薦的安裝路徑是C:\Go

1.3 配置環境變量

Go開發中需要配置哪些環境變量

環境變量 說明
GOROOT 指定GolangSDK的安裝路徑,Go安裝的目錄
Path 添加SDK下bin的目錄,就是go.exe所在目錄
GOPATH 工作目錄,Go項目的路徑。說白了就是項目源代碼的存放目錄
1.3.1 新建GOROOT

1.3.2 編輯Path,添加Go.exe的路徑


新增%GOROOT%\bin;

1.3.3 新增GOPATH

Go項目放在哪個目錄下,指定根目錄即可,不必跟蹤到src目錄中去。Ps:這一點也是Golang被人吐槽比較多的一點

1.4 測試

測試代碼:

package main

import "fmt"

func main() {
	fmt.Println("Hello, 世界")
}

運行結果如下,就是安裝成功了:

1.5 注意事項

a). Windows中,切記不要使用Text去寫代碼!Windows的Text有一個叫"bom頭"的玩意兒,開頭是三個無法顯示的字符。Windows獨有的問題,類Unix系統沒有這問題。
b). 如果用了Windows的Text,需要選擇另存為UTF-8

否則,一旦運行就會報這個錯誤:

2.Ubuntu server安裝篇

安裝方式同理於Windows環境下的壓縮包安裝方式。
備注:我是自己的學習環境,為了偷懶,直接使用了root權限。

2.1 確定系統版本
uname -a


官方推薦:下載壓縮包,解壓后即可直接使用二進制可執行文件(Linux中就是go可執行文件,同理於go.exe,只是Linux系統沒有后綴這個概念)
知道了版本信息就去找到對應的壓縮包:

2.2 安裝代碼如下
// 更新系統源
apt update
apt upgrade -y

// 下載
wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz

// 解壓
tar -xvf go1.13.5.linux-amd64.tar.gz

// 建立存放Go項目的文件夾
mkdir goProject

// 移動到系統路徑下
mv go /usr/local

// Golang環境變量
vim /etc/profile
// 在文件的末尾添加下面2行代碼
export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
export GOPATH=/root/goProject

// 重新加載一下配置文件
source ~/.profile
  • Go開發中需要配置哪些環境變量
環境變量 說明
GOROOT 指定GolangSDK的安裝路徑,Go安裝的目錄
PATH 添加SDK下bin的目錄,就是go.exe所在目錄
GOPATH 工作目錄,Go項目的路徑。說白了就是項目源代碼的存放目錄
2.3 校驗是否安裝成功
go version
go env

能打印出以下內容,就證明Golang安裝成功了

2.4 測試

測試代碼直接拿了上面Windows環境測試的代碼。

2.5 參考文獻

https://tecadmin.net/install-go-on-ubuntu/



二、環境搭建

2.1 關於SDK

SDK - Software Development Kit 軟件開發工具包,提供給開發者使用,包含了對應開發語言的工具包。包括運行的工具、編譯的工具、一堆的API……
代碼寫完后,它是無法直接使用的。需要SDK把代碼編譯成可執行文件,才能交給計算機進行執行。
做Golang開發,首先需要安裝並配置好SDK。原理相當於:你要處理圖片,就需要先安裝PS

2.2 本地環境搭建

IDE工具我選擇了目前全宇宙最好用的Golang集成開發工具,就像搞Python開發的Pycharm那樣牛逼。
我安裝的版本是2018.3.6,安裝完后啟動它,我的習慣是不引入任何設置。全新的IDE它會要求你進行配置。
根據IDE的提示,可以如下操作:

選擇本地磁盤中Go安裝包的根目錄即可。
測試:

2.3 遠程Linux代碼同步

未來的Web服務都是跑在Linux服務器系統上的,因此很有必要事先設置好代碼同步。
以下快捷鍵基於Win7下的Goland2018.3.6

2.3.1 Delpoyment - SFPT

打開設置頁面,快捷鍵:ctrl+alt+s

2.3.2 寫一個名字

只是為了自己區分而已,符合Goland的規則即可:

2.3.3 填寫服務器信息

2.3.4 手動上傳測試

先通過手動上傳的方式,測試一下文件同步是否可用:

能夠看到文件上傳成功,就說明遠程同步沒問題了:

2.3.5 設置上傳模式

不設置的話,就算按ctrl+s也不會上傳文件!
根據個人習慣,可設置手動也可以是自動:

我個人習慣自動保存:

2.4 Linux上安裝Golang調試工具

未來項目是要跑在Linux服務器上的,調試工具也肯定是安裝在Linux服務器上。

2.4.1 下載dlv

Delve就是用Golang開發的調試工具,調試Golang代碼的。

go get -u github.com/go-delve/delve/cmd/dlv

下載的軟件包會存在放當前目錄下(這個dlv默認的文件夾名稱也是"go"),下載完畢就可以直接使用。cd進bin目錄,找到dlv這個文件。直接./dlv debug xxx.go就可以調試Golang代碼了。

2.4.2 給dlv找個合適的路徑

與Golang有關的工具,我習慣把它移動到Golang的安裝目錄下,步驟如下:

// 重命名,以避免跟golang的SDK名稱起沖突
mv go go-delve

// 移動到Golang安裝的根目錄下
cp -r go-delve/ $GOROOT/go

// 創建軟鏈,之后可以直接用dlv
ln -s $GOROOT/bin/go-delve/bin/dlv /usr/local/bin/

// 打印版本信息,確定是否成功
dlv version

打印出了版本信息,就表明沒有:

2.4.3 參考文獻

調試教程可看這篇文章:

https://yq.aliyun.com/articles/57578

2.5 Goland配置

在Windows的Goland上配置遠程調試器:



但因為我是老爺機,32bit沒法跑delve:

Goland配置的參考文獻:

https://blog.csdn.net/foxlively/article/details/90697909



三、為go get設置代理

因不可抗力因素,go get很多模塊無法下載或者下載極慢,所以只能找代理。

3.1 Ubuntu Server

go 1.13及以上可以直接設置:

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

// 測試一下
go get -u github.com/gin-gonic/gin

參考文獻:

https://www.toutiao.com/a6746004933880840711


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM