<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>

          GoLand 2021.1 重磅發(fā)布:新特性試用報告

          共 2355字,需瀏覽 5分鐘

           ·

          2021-04-10 14:07

          閱讀本文大概需要 5 分鐘。

          大家好,我是站長 polarisxu。

          jetbrains 官方剛發(fā)布了 GoLand 2021.1 版本。這個版本有些重磅的特性值得關(guān)注。

          我安裝試用了下,發(fā)現(xiàn)啟動界面變了(jetbrains 系列 IDE 啟動界面都變了)。

          01 遠程構(gòu)建和運行程序

          VSCode 的朋友們可能要說:切,這個功能,VSCode 早就有了。。。

          GoLand 現(xiàn)在可以通過 Docker、SSH 和 WSL 2 遠程構(gòu)建和運行程序。具體就是,你可以在本地編寫 Go 代碼,然后在遠程的某個機器運行你的代碼,而且支持 Windows 下的 Linux 子系統(tǒng) WSL 2。

          配置遠程構(gòu)建和運行,有如下兩種方式:

          1)通過 Run 菜單,Manage Targets… 配置 Run 目標。

          2)或通過 Run 菜單,Edit Configuration… 然后在以下界面 “Run on” 右側(cè)有 “Manage targets”,同樣可以配置 Run 目標;或者直接通過以下界面 Create New Targets 或選擇 Saved targets。

          以上兩種方式,如果點擊 Manage targets,則會進入以下的 Run Targets 界面:

          通過以上的配置后,Run on 選擇你想運行的目標,下次 Run 時候就在對應(yīng)目標上運行了。(為什么沒有 WSL 2?因為我不是 Windows 系統(tǒng))

          運行后,你可以去遠端目標確認,是否有文件(源文件和編譯的臨時文件等)。

          02 對 Go1.16 的支持

          這里說的 Go1.16 的支持,主要是指對 //go:embed 的支持。要特別提醒的是,Go1.16 很多特性,GoLand 其他版本都是支持的,因為沒有太多特別的。而這里要說的是,對 //go:embed 這個指令的支持,GoLand 2021.1 可以對它進行提示。如下圖:

          此外,對指令提供代碼高亮顯示,從嵌入指令內(nèi)部的引用導(dǎo)航到項目中的文件和文件夾等。同時 GoLand 還會進行代碼檢查,比如,如果你試圖將文件嵌入到錯誤類型的變量中,GoLand 會提示出來。(注意只有導(dǎo)入 embed 包后才會高亮顯示等,當然,導(dǎo)入該包也可以根據(jù) GoLand 提示快速導(dǎo)入)

          03 快速處理錯誤

          Go 語言中,錯誤處理被吐槽比較多。if err != nil 寫到手軟。

          如下代碼:

          func main() {
           testErrorHandle()
          }

          func testErrorHandle() error {
           return errors.New("This is error")
          }

          在 main 中對 testErrorHandle 的調(diào)用,需要處理 error,怎么辦?鼠標停留在 testErrorHandle 的調(diào)用處,會出現(xiàn)提示:

          點擊 Handle error,會自動變成:

          err := testErrorHandle()
          if err != nil {
            return 
          }

          不用自己手寫了。(也可以通過快捷鍵實現(xiàn),Handle error 后面就是對應(yīng)的快捷鍵)

          04 基于 JSON 生成 struct

          微信群里,經(jīng)常有人問類似這樣的問題:

          針對這段 JSON 如何定義 struct?

          因為這樣的需求挺多,所有網(wǎng)上有很多類似的工具,比如 https://mholt.github.io/json-to-go/。現(xiàn)在這樣的需求,GoLand 直接幫你解決了。

          比如有如下 JSON:

          {
           name: "polarisxu",
           wechat: "gopherstudio"
          }

          你復(fù)制粘貼到 GoLand 的某個 Go 文件中,會彈出一個對話框,提示你是否要轉(zhuǎn)為 struct:

          確認后,生成如下 struct(struct 名稱默認是 T,進行修改即可):

          type T struct {
           Name   string `json:"name"`
           Wechat string `json:"wechat"`
          }

          相當方便了。

          此外,在 tag 字段,按下 Alt+Enter(或 option + Enter,Mac 下),會出現(xiàn) context actions 對話框,可以進行相關(guān)的操作修改,比如修改字段名。很方便。

          05 其他特性

          還有其他較多特性,我沒有一一試驗。這里列舉一下:

          • 為 struct 字段生成 getter 和 setter。好吧,感覺 Go 不太需要;
          • 自動做強制類型轉(zhuǎn)換。比如 int32 類型賦值給 int64;
          • 重構(gòu) go.mod 文件;
          • 更好的格式化;
          • Code With Me。這是多人協(xié)作的功能。之前在介紹 Atom 的時候我提到過類似的功能;
          • 閱讀模式;
          • 。。。

          更多完整的特性,可以參考官方發(fā)布的文章:https://www.jetbrains.com/go/promo/whatsnew/。

          對新版的新特性,你有什么想說的嗎?歡迎留言交流!




          往期推薦


          歡迎關(guān)注我

          都看到這里了,隨手點個贊支持下唄!


          瀏覽 64
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  久久黄色视频免费看 | 7777偷窥盗摄视频 | 天天草天天射天天干 | 黄网站18禁 | 五月丁香欧美性爱 |