GoLand 2020.3 正式發(fā)布有不少新功能(支持泛型)
這是 2020 年第 3 個版本,也是最后一個版本。在 GoLand 2020.3 中,您可以探索 goroutines dumps,運行并導(dǎo)航到單個表測試(table tests),并從對 Testify 測試框架的擴(kuò)展支持中獲得更多信息。你還將發(fā)現(xiàn)許多新的代碼編輯功能,包括對 time 包的支持,更智能的處理包方法,UI 改進(jìn),用于 Web 開發(fā)和使用數(shù)據(jù)庫的各種新功能以及用于協(xié)作開發(fā)和結(jié)對編程的新服務(wù)。具體看看有哪些新特性。

01 調(diào)試器改進(jìn) Dump Goroutines

調(diào)試器中新的轉(zhuǎn)儲 Goroutines(Dump Goroutines) 圖標(biāo)使您可以在調(diào)試會話期間輕松地在堆棧中查找包含指定字符串的 goroutine。只需單擊該圖標(biāo)即可在單獨的窗口中打開轉(zhuǎn)儲。
為了幫助您始終關(guān)注重要信息,可以選擇隱藏單個goroutine或具有相同堆棧的goroutine。右鍵單擊goroutine,然后選擇所需的操作,或按Delete鍵將其移至轉(zhuǎn)儲窗口中的特殊“隱藏”部分,這樣不會分散您的注意力。
Go Remote configuration

如果不需要重新連接,GoLand 2020.3可以通過 Go Remote 配置停止進(jìn)程。
在配置設(shè)置中,您可以指定斷開連接時調(diào)試器的默認(rèn)行為,可以選擇 “Stop remote Delve processes”,“使其保持運行狀態(tài)”或讓 GoLand 每次詢問您如何繼續(xù)。
02 測試增強(qiáng)
支持 table tests

您可以從 “Run” 工具窗口運行并導(dǎo)航到表測試。
有一些限制:
- 測試數(shù)據(jù)變量必須是切片,數(shù)組或 map。它必須在與調(diào)用相同的函數(shù)中定義,并且在初始化后不得修改(for 循環(huán)中的 range 子句除外)。
- 各個測試數(shù)據(jù)條目必須是結(jié)構(gòu)體字面值。調(diào)用前不得使用子測試名稱表達(dá)式中使用的循環(huán)變量。
- 子測試名稱表達(dá)式可以是測試數(shù)據(jù)中的字符串字段,測試數(shù)據(jù)字符串字段的連接以及帶有 %s 和 %d 動詞的fmt.Sprintf() 調(diào)用。
擴(kuò)展了對 Testify 的支持

現(xiàn)在,IDE 可以識別啟動測試套件的測試功能,并提供一種啟動單個 suite.Run 和 suite.T().Run,只要子測試名稱是字符串常量即可。另外,可以從“Run”工具窗口重新運行子測試,以避免重新運行整個頂級測試。
此外,GoLand 現(xiàn)在可以在一個測試用例中使用相同的方法名稱分別運行 Testify 套件。
最后但并非最不重要的一點是,當(dāng)您準(zhǔn)備寫測試函數(shù)時(testing.T 作為第一個參數(shù)),GoLand 會在可能的情況下自動傳遞該參數(shù)。這適用于 testify/assert,testify/require,testify/mock 和 testify/suite 包。
03 代碼檢查

不正確使用類似 Println/Printf 的函數(shù),GoLand 會有警告,之前只對標(biāo)準(zhǔn)庫起作用,現(xiàn)在支持 github.com/pkg/errors, github.com/sirupsen/logrus 和 go.uber.org/zap 包。
最重要的是,我們添加了占位符突出顯示和折疊,以及添加格式字符串參數(shù)的意圖。

context.CancelFunc(不稱為代碼檢查)報告了 context 取消的潛在不安全使用。當(dāng) context 返回的 “cancel” 函數(shù)未在所有執(zhí)行路徑上調(diào)用時,此功能特別有用。
更多細(xì)節(jié)可以查看標(biāo)準(zhǔn)庫文檔:https://docs.studygolang.com/pkg/context。
04 代碼編輯
time 包的支持
Go 語言中文網(wǎng)注:Go 中的時間格式化和其他語言不一樣,其他語言都是使用 YYYY、MM、dd 等,而 Go 使用魔法數(shù)字:2006-01-02 15:04:05 這樣的固定時間。有些人可能記不住或習(xí)慣其他語言的格式。GoLand 2020.3 做了這樣的轉(zhuǎn)換,見下圖。

我們增加了對 time 包的支持,因此您可以更輕松地使用 time 和 duration。GoLand 將通過代碼補(bǔ)全(⌃Space)建議使用 ISO-8601 中 YYYY,MM,DD 占位符的預(yù)定義 Layout。
在某個 token 上按 ⌘P,IDE 將顯示其含義。Layout 標(biāo)記也有語法突出顯示。代碼完成還建議在字符串文字之外的標(biāo)準(zhǔn)時間 Layout。
更智能的包處理

現(xiàn)在,IDE 可以更聰明地為您經(jīng)常使用的包的提示項配置優(yōu)先級,這些包是在項目的 go.mod 文件中明確聲明的。
我們還添加了一個選項,可將包從項目導(dǎo)入路徑和完成建議中完全排除。您可以通過 Alt + Enter 或在排除窗口中執(zhí)行此操作。
支持變量 shadowing

GoLang 可以更輕松地發(fā)現(xiàn)變量 shadowing。
IDE 顯示的變量現(xiàn)在可以用不同的顏色區(qū)分 shadowing 變量。
導(dǎo)航到 shadowing 聲明意圖操作,使您可以立即切換到 shadowing 聲明。
類型參數(shù)中的方括號
我們跟蹤了 Go 小組對 泛型 [1] 的更新,并增加了對泛型語法方括號的支持。
請注意,Settings | Go 中的 “ Enable generics (experimental support for type parameters) ” 默認(rèn)情況下處于關(guān)閉狀態(tài)。您需要明確選擇該復(fù)選框才能開始使用該功能。
更多關(guān)于該功能的信息可以 查看該文章 [2] 。
05 其他改進(jìn)

在測試文件中鍵入 func 時,默認(rèn)情況下,GoLand 會提示出 bench 和 test 函數(shù)模板。

當(dāng)您在基準(zhǔn)測試中輸入 for 時,IDE 建議使用 b.N 的 for 循環(huán)來完成它。
改進(jìn)了拼寫和語法檢查器

現(xiàn)在,當(dāng)您按 Alt + Enter 時,建議會立即顯示在對話框中。此外,新版本的 LanguageTool 語法檢查引擎還改進(jìn)了英語檢查功能,并增加了對 10 種其他語言的支持。
06 和我編碼(結(jié)對編程)

GoLand 2020.3 支持 Code With Me(EAP),這是 JetBrains 的一項新服務(wù),用于協(xié)作開發(fā)和結(jié)對編程。與我一起編寫代碼使您可以與他人共享您當(dāng)前在 IDE中 打開的項目,并實時進(jìn)行協(xié)作。
關(guān)于該功能的更多信息請查看 這篇文章 [3] 。
07 其他
其他的改進(jìn)有:
UI 改進(jìn);
VSC 更新;
Web 開發(fā)增強(qiáng);
對數(shù)據(jù)庫支持增強(qiáng);
關(guān)于這塊的詳細(xì)信息可以到 這里查看 [4] 。
08 總結(jié)
GoLand 是一個收費軟件,可以試用 30 天。如果覺得不錯,歡迎支持!當(dāng)然免費的 VSCode 也香,對吧!
參考資料 [1]
泛型: https://groups.google.com/g/golang-nuts/c/iAD0NBz3DYw?pli=1
[2]
查看該文章: https://blog.jetbrains.com/go/2020/11/24/experimenting-with-go-type-parameters-generics-in-goland/
[3]
這篇文章: https://blog.jetbrains.com/tag/codewithme/
[4]
這里查看: https://www.jetbrains.com/go/promo/whatsnew/
到此這篇關(guān)于GoLand 2020.3 正式發(fā)布有不少新功能(支持泛型)的文章就介紹到這了,更多相關(guān)GoLand 2020.3支持泛型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go?Error?嵌套實現(xiàn)創(chuàng)建方式
這篇文章主要介紹了Go?Error?嵌套到底是怎么實現(xiàn)的?大家都知道創(chuàng)建error有兩種方式分別是errors.new()另一種是fmt.errorf(),本文通過詳細(xì)例子給大家介紹,需要的朋友可以參考下2022-01-01
golang gin 框架 異步同步 goroutine 并發(fā)操作
這篇文章主要介紹了golang gin 框架 異步同步 goroutine 并發(fā)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Go實現(xiàn)字符串與數(shù)字的高效轉(zhuǎn)換
在軟件開發(fā)的世界里,數(shù)據(jù)類型轉(zhuǎn)換是一項基礎(chǔ)而重要的技能,尤其在Go語言這樣類型嚴(yán)格的語言中,正確高效地進(jìn)行類型轉(zhuǎn)換對于性能優(yōu)化和代碼質(zhì)量至關(guān)重要,本文給大家介紹了Go實現(xiàn)字符串與數(shù)字的高效轉(zhuǎn)換,需要的朋友可以參考下2024-02-02

