成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

保姆級 Go+ 快速入門體驗教程,你會嗎?

開發 后端
Go+ 1.0 的發布會過去有幾天了,想著要不直接干一個 Demo 到本地玩玩,于是就有了這篇文章。

 [[431501]]

本文轉載自微信公眾號「GoLang全棧」,作者錕。轉載本文請聯系GoLang全棧公眾號。

Go+ 1.0 的發布會過去有幾天了,想著要不直接干一個 Demo 到本地玩玩,于是就有了這篇文章。

你也可以根據這篇文章一步一步的搭建你的 Go+ 開發環境。

如果你只是想體驗下,可以直接到 play 頁面體驗,地址如下:

https://play.goplus.org/

環境安裝

首先我們去到 Go+ 的官網:goplus.org

一頭可愛的小牛牛,非常具有七牛的辨別度。

根據官網可以看出 Go+ 的定位更多的是往工程、STEM教育和數據科學這幾個方面。

點擊 Download Go+ 按鈕,就會直達他們的 Github Release 頁面:

我現在看到的是 1.0.16 版,或許你看到時版本會更高些。

這里根據你的系統下載對應的包即可,我使用的 Mac 電腦,所以選擇 Darwin 的包。

下載解壓后,應該能看到有 2 個可執行的二進制文件:

此時我們就需要把這兩個二進制文件放到,已經添加到你的環境變量的目錄下面,方便我們可以在任意文件夾下執行 gop xxx 命令。

我這里選擇放到 GOPATH 下面的 bin 目錄下面。

到此就安裝完畢了。

開發工具和插件

有人問有官方的開發工具沒,我好像沒在官網找到有。

所以我這里使用的 VScode 作為開發工具,因為方便安裝插件。

首先我們需要在插件中心找到一個名叫 goplus 的插件:

安裝完畢,我們就可以開始編寫代碼了。

編寫 Demo 代碼

我在我的桌面上新建了一個名為 gop 的目錄,并用 vscode 打開了。

因為 Go+ 其實是對 Go 進行了一些擴展,其開發環境還是需要依賴 Go 的。

如果你沒在 GOPATH 下新建工程,就需要使用 Go Model 來處理依賴,所以我們這里在工程目錄下面執行下 Go Model 的初始化命令:

  1. go mod init gop 

這里 gop 是你的工程名字,你可以隨意。

此時文件夾下面會多一個 go.mod 文件,這里不做過多解釋了。

隨后開始編寫我們的 gop 文件,新建一個 main.gop 文件,寫入如下內容:

  1. package main 
  2.  
  3. func main(){ 
  4.  println("hello"

和 Go 的代碼很相似,但是 Go 的輸出需要使用 fmt 包,在 Go+ 里面則不需要。

現在編譯執行下這個文件:

  1. gop run main.go 

你會發現少依賴:

直接在命令行執行他提示的安裝命令即可:

  1. go get github.com/goplus/gop/builtin 

安裝完畢后,再次執行就可以了:

你會發現他把 gop 文件翻譯成了 autogen.go 文件,這個直接用 go 執行那個文件也是一樣的效果。

Mac環境特有的問題

如果你是 Mac 環境,你在第一次執行時,你應該會遇到下面這個提示:

此時你大可不必【移到廢紙簍】里面,點擊取消到【安全性與隱私】的【通用】里面點擊【仍然允許】即可。

隨后 gop 的提示也是一樣的處理方式。

一些 Go+ 的特性

Go+ 給我們提供了很多語法糖的東西給我們,讓我們的代碼看起來更加的人性化,寫起代碼來更加絲滑,當然不止語法糖這一個好處,后期可能還會有科學計算方面的支持等。

所以這篇文章接下來就給大家挑一些語法糖給大家說說:

混合切片

這是我給他取的名字哈,在 Go 里面除了 interface 類型的以外,一個切片只能存放一種類型,所以在創建時就得定義好。

但是 Go+ 里面你大可不必關心數據類型,你可以任意地放類型。

  1. func main() { 
  2.  a := [1, "abc", 2.3] 
  3.  println(a) 
  4.  
  5. --- 
  6. $ gop run main.gop  
  7. [1 abc 2.3] 

然后你去看 autogen.go 文件,你會發現,他進行了自動類型推導。

切片的遍歷

  1. func main() { 
  2.  a := [1, 2.3, 45] 
  3.  println([item*2 for item <- a]) 
  4.  
  5. --- 
  6. $ gop run main.gop  
  7. [2 4.6 90] 

這種寫法其他語言好像也是支持的,類似高階函數。

更加人性化的錯誤處理

Go 里面的錯誤處理機制是最讓人煩惱的,所以 Go+ 里面給出了他的處理方式:

  1. expr! // panic if err 
  2. expr? // return if err 
  3. expr?:defval // use defval if err 

怎么用呢?

假如我們需要寫一個方法,把 string 類型的轉換成 int 類型,如果轉換成功返回 int 數據,如果轉換異常就返回 0。

下面是 Go 的代碼:

  1. func ToInt(in string) int { 
  2.  res, err := strconv.Atoi(in
  3.  if err != nil { 
  4.   return 0 
  5.  } else { 
  6.   return res 
  7.  } 

下面是 Go+ 的寫法:

  1. func ToInt(in string) int { 
  2.  return strconv.Atoi(in)?:0 

是不是簡潔了很多,這種寫法和 swift 很類似。

寫在最后的

Python 之所以很多人用,有很多原因,但是有一點是少不了的,那就是他的庫多,所以 Python 又稱為膠水語言。

所以如果后期 Go+ 里面能納入更多的庫,相信將會是 Go 的重磅炸彈,當然這個還是主要看 Go+ 的社群了。

一起期待 Go+ 未來的進一步動作吧!

責任編輯:武曉燕 來源: GoLang全棧
相關推薦

2021-01-15 09:30:02

Tomcat ApacheJavaServer

2023-11-27 00:18:38

2023-06-26 00:07:14

2023-05-29 07:39:49

2021-03-10 08:55:42

Go數據語言

2021-10-29 23:00:47

Windows 11Windows微軟

2021-09-06 11:50:45

Windows 11Windows微軟

2021-11-05 10:59:06

元編程語言工具

2023-10-23 00:06:29

2021-10-31 15:46:14

Windows 11Windows微軟

2021-09-13 07:23:52

Go Set 設計

2022-09-06 10:39:38

Docker鏡像構建

2022-12-12 11:47:34

WindowsPySpark服務器

2022-12-01 11:41:24

2021-09-14 13:55:15

Go開發分布式

2024-09-14 09:10:26

MySQL數據庫UOS

2023-07-06 09:01:33

2022-12-02 11:37:47

2020-07-16 14:25:18

PythonGo前端

2024-07-24 20:01:03

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷毛片 | 在线免费观看黄色网址 | 国产电影一区二区在线观看 | 国内精品久久久久久 | 国产精品久久久久久久久久久免费看 | 日本三级全黄三级三级三级口周 | 日本久久网 | 欧美三级不卡 | 午夜欧美 | 欧美在线一区二区视频 | 亚洲一区二区三区观看 | 神马久久春色视频 | 国产欧美日韩一区 | 国产免费福利小视频 | 国产9999精品 | 亚洲va欧美va天堂v国产综合 | h视频在线观看免费 | 精品在线免费观看视频 | 麻豆av片| 亚洲午夜精品久久久久久app | 日韩精品视频在线播放 | 欧美八区| 国产乱精品一区二区三区 | 蜜桃视频在线观看免费视频网站www | 精品视频免费在线 | 在线免费视频一区 | 国产色婷婷精品综合在线播放 | 国产精品精品视频一区二区三区 | 在线成人免费视频 | 国产大学生情侣呻吟视频 | 国产精品区一区二区三区 | 久久精品久久综合 | 看片地址| 亚洲精品日韩在线 | 天天操天天天 | 久草资源网站 | 欧美综合在线观看 | 欧美日韩精品一区二区三区四区 | 精品国产一区二区三区免费 | 成年视频在线观看 | 成人在线精品视频 |