Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序
文章目錄
- 為什么要學習 go
- 開發環境搭建 -- MAC
- 運行第一個go程序
- go 函數的返回值設置
- go 函數的命令行參數
為什么要學習 go
在如下幾個應用場景的需求下產生了go:
- 超大規模分布式計算集群
- 多核硬件的架構
- web模式下的大規模開發和頻繁的進度更新
所以go 語言有如下幾個特點:
- 簡單。 只有25個關鍵字,相比于C的37個,C++的84個已經是很簡單了
- 高效。編譯型語言,也支持垃圾回收,同時支持指針直接訪問內存。
- 云計算語言。docker 和 kubernate 都是通過go語言開發的
- 區塊鏈語言。
對于存儲領域來說,go語言已經實現了很多大規模的高性能和高并發框架,能夠快速高效得完成一個存儲組件的開發。而且最近想要學習MIT 6.824課程過程中的一些很有趣的lab需要使用go來完成,這個過程的學習和提升就很有趣了。
開發環境搭建 – MAC
-
新建本地目并設置環境變量
在home目錄下創建go目錄,go/src目錄,go/pkg/mod目錄,分別作為go path目錄,源代碼目錄,依賴模塊目錄
修改~/.bash_profile文件,增加如下內容:
export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH/bin"如果在unix,則默認是
$HOME/go;如果是windows ,則默認是%USERPROFILE%go -
安裝go
brew install go// 會直接安裝go 的最新版本 1.14
安裝完成之后 通過go version查看 -
安裝golangci-lint
brew install golangci/tap/golangci-lint
golangci-lint作為代碼靜態檢查工具,后續開發過程中可以使用make lint(makefile中添加)預先檢查代碼中不符合go編碼規范的地方,否則流水線禁止提交,可以提前做到代碼風格的一致性和可讀性 -
開發工具安裝
這里看個人習慣:vscode , goland都是可以的
mac 下的工具安裝:
brew cask install goland
運行第一個go程序
-
之前創建好的源碼路徑
$GOPATH/src目錄下新建一個ch1目錄,再在該ch1目錄下新建一個以hellow_world.go命名的go文件 -
hello_world.go文件中輸入如下代碼package main // 表明代碼所在的模塊包,這個是必須聲明的import "fmt" // 引入代碼依賴//實現功能 func main() {fmt.Println("Hello World") } -
運行
go run hello_world.go -
也可以編譯生成二進制文件
go build hello_world.go
生成的二進制文件 運行所依賴的庫已經鏈接好了,這個時候隨意移動二進制文件都是可以運行的。
go 函數的返回值設置
不同與 java/C/C++ 的 return方式的返回值,go語言里需要設置
os.Exit(code int)
即如下代碼
package main // 表明代碼所在的模塊包,這個是必須聲明的import ("fmt" // 引入代碼依賴"os" //引入os 的代碼依賴
)//實現功能
func main() {fmt.Println("Hello World")os.Exit(0) // 設置返回值
}
go 函數的命令行參數
不同于C/C++/Java的命令行參數傳入 直接通過 main 的參數char *args[]來保存,go 不同的是需要通過相關的依賴來進行傳入。
main函數不支持入參
func main (arg [] string)- 程序中直接通過
os.Args獲取命令行參數
package mainimport ("fmt""os"
)func main() {fmt.Println("command args: ", os.Args)if len(os.Args) > 1 { // len是數組求長度的函數fmt.Println("Hellow world ", os.Args[1])}
}
運行輸出如下:
輸出的結果 ,command args:之后的數組內容 第一個是我們的二進制binary,第二個是我們傳入的命令行參數
總結
以上是生活随笔為你收集整理的Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛皮的皮带,要多少钱?
- 下一篇: Go: 分布式学习利器(2)-- Go中