<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          保姆級 Go+ 快速入門體驗教程

          共 1701字,需瀏覽 4分鐘

           ·

          2021-10-30 16:30

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

          你也可以根據(jù)這篇文章一步一步的搭建你的 Go+ 開發(fā)環(huán)境。

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

          https://play.goplus.org/

          環(huán)境安裝

          首先我們?nèi)サ?Go+ 的官網(wǎng):goplus.org

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

          根據(jù)官網(wǎng)可以看出 Go+ 的定位更多的是往工程、STEM教育和數(shù)據(jù)科學(xué)這幾個方面。

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

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

          這里根據(jù)你的系統(tǒng)下載對應(yīng)的包即可,我使用的 Mac 電腦,所以選擇 Darwin 的包。

          下載解壓后,應(yīng)該能看到有 2 個可執(zhí)行的二進制文件:

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

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

          到此就安裝完畢了。

          開發(fā)工具和插件

          有人問有官方的開發(fā)工具沒,我好像沒在官網(wǎng)找到有。

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

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

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

          編寫 Demo 代碼

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

          因為 Go+ 其實是對 Go 進行了一些擴展,其開發(fā)環(huán)境還是需要依賴 Go 的。

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

          go?mod?init?gop

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

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

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

          package?main

          func?main(){
          ?println("hello")
          }

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

          現(xiàn)在編譯執(zhí)行下這個文件:

          gop?run?main.go

          你會發(fā)現(xiàn)少依賴:

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

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

          安裝完畢后,再次執(zhí)行就可以了:

          你會發(fā)現(xiàn)他把 gop 文件翻譯成了 autogen.go 文件,這個直接用 go 執(zhí)行那個文件也是一樣的效果。

          Mac環(huán)境特有的問題

          如果你是 Mac 環(huán)境,你在第一次執(zhí)行時,你應(yīng)該會遇到下面這個提示:

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

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

          一些 Go+ 的特性

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

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

          混合切片

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

          但是 Go+ 里面你大可不必關(guān)心數(shù)據(jù)類型,你可以任意地放類型。

          func?main()?{
          ?a?:=?[1,?"abc",?2.3]
          ?println(a)
          }

          ---
          $?gop?run?main.gop?
          [1?abc?2.3]

          然后你去看 autogen.go 文件,你會發(fā)現(xiàn),他進行了自動類型推導(dǎo)。

          切片的遍歷

          func?main()?{
          ?a?:=?[1,?2.3,?45]
          ?println([item*2?for?item?<-?a])
          }

          ---
          $?gop?run?main.gop?
          [2?4.6?90]

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

          更加人性化的錯誤處理

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

          expr!?//?panic?if?err
          expr??//?return?if?err
          expr?:defval?//?use?defval?if?err

          怎么用呢?

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

          下面是 Go 的代碼:

          func?ToInt(in?string)?int?{
          ?res,?err?:=?strconv.Atoi(in)
          ?if?err?!=?nil?{
          ??return?0
          ?}?else?{
          ??return?res
          ?}
          }

          下面是 Go+ 的寫法:

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

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

          寫在最后的

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

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

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


          文章的最后,插播一個福利

          雙十一快到了,阿里云也開始搞活動了,剛好我這邊可以帶大家白Piao?阿里云的服務(wù)器。

          說白了就是大家?可以一分錢不花,就可以領(lǐng)到服務(wù)器,規(guī)格是 2c2m(2vcpu 2G memory) 的機器。

          昨天在朋友圈發(fā)了下,已經(jīng)有 400 人報名參與了,今天這篇文章再說一下,有想參加的朋友,可以加我下微信,備注『服務(wù)器,我統(tǒng)一拉群,帶大家一起薅羊毛。


          ? ?


          喜歡明哥文章的同學(xué)
          歡迎長按下圖訂閱!

          ???

          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉伊人宗和网 | 在线观看操b视频 | 亚洲高清无码专区 | 国产精品午夜在线观看 | 一级黄色片成年人电影 |