日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

  1. 新建本地目并設置環境變量

    在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

  2. 安裝go
    brew install go // 會直接安裝go 的最新版本 1.14
    安裝完成之后 通過go version查看

  3. 安裝golangci-lint
    brew install golangci/tap/golangci-lint
    golangci-lint作為代碼靜態檢查工具,后續開發過程中可以使用make lint(makefile中添加)預先檢查代碼中不符合go編碼規范的地方,否則流水線禁止提交,可以提前做到代碼風格的一致性和可讀性

  4. 開發工具安裝
    這里看個人習慣:vscode , goland都是可以的
    mac 下的工具安裝:
    brew cask install goland

運行第一個go程序

  1. 之前創建好的源碼路徑 $GOPATH/src目錄下新建一個ch1目錄,再在該ch1目錄下新建一個以hellow_world.go命名的go文件

  2. hello_world.go文件中輸入如下代碼

    package main // 表明代碼所在的模塊包,這個是必須聲明的import "fmt" // 引入代碼依賴//實現功能
    func main() {fmt.Println("Hello World")
    }
    
  3. 運行 go run hello_world.go

  4. 也可以編譯生成二進制文件 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程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。