目錄
- 02 測(cè)試增強(qiáng)
- 03 代碼檢查
- 04 代碼編輯
- 05 其他改進(jìn)
- 06 和我編碼(結(jié)對(duì)編程)
- 07 其他
這是 2020 年第 3 個(gè)版本,也是最后一個(gè)版本。在 GoLand 2020.3 中,您可以探索 goroutines dumps,運(yùn)行并導(dǎo)航到單個(gè)表測(cè)試(table tests),并從對(duì) Testify 測(cè)試框架的擴(kuò)展支持中獲得更多信息。你還將發(fā)現(xiàn)許多新的代碼編輯功能,包括對(duì) time 包的支持,更智能的處理包方法,UI 改進(jìn),用于 Web 開(kāi)發(fā)和使用數(shù)據(jù)庫(kù)的各種新功能以及用于協(xié)作開(kāi)發(fā)和結(jié)對(duì)編程的新服務(wù)。具體看看有哪些新特性。
![](/d/20211017/6de26e6d6a1eba031e7209b5aaf260df.gif)
01 調(diào)試器改進(jìn) Dump Goroutines
![](/d/20211017/26a37601babd8c230a6e4b81689a343c.gif)
調(diào)試器中新的轉(zhuǎn)儲(chǔ) Goroutines(Dump Goroutines) 圖標(biāo)使您可以在調(diào)試會(huì)話期間輕松地在堆棧中查找包含指定字符串的 goroutine。只需單擊該圖標(biāo)即可在單獨(dú)的窗口中打開(kāi)轉(zhuǎn)儲(chǔ)。
為了幫助您始終關(guān)注重要信息,可以選擇隱藏單個(gè)goroutine或具有相同堆棧的goroutine。右鍵單擊goroutine,然后選擇所需的操作,或按Delete鍵將其移至轉(zhuǎn)儲(chǔ)窗口中的特殊“隱藏”部分,這樣不會(huì)分散您的注意力。
Go Remote configuration
![](/d/20211017/80cb2a914682b88cd7cbf449fb4940a8.gif)
如果不需要重新連接,GoLand 2020.3可以通過(guò) Go Remote 配置停止進(jìn)程。
在配置設(shè)置中,您可以指定斷開(kāi)連接時(shí)調(diào)試器的默認(rèn)行為,可以選擇 “Stop remote Delve processes”,“使其保持運(yùn)行狀態(tài)”或讓 GoLand 每次詢問(wèn)您如何繼續(xù)。
02 測(cè)試增強(qiáng)
支持 table tests
![](/d/20211017/0e63a7c369713dfb900cf25596827b47.gif)
您可以從 “Run” 工具窗口運(yùn)行并導(dǎo)航到表測(cè)試。
有一些限制:
- 測(cè)試數(shù)據(jù)變量必須是切片,數(shù)組或 map。它必須在與調(diào)用相同的函數(shù)中定義,并且在初始化后不得修改(for 循環(huán)中的 range 子句除外)。
- 各個(gè)測(cè)試數(shù)據(jù)條目必須是結(jié)構(gòu)體字面值。調(diào)用前不得使用子測(cè)試名稱(chēng)表達(dá)式中使用的循環(huán)變量。
- 子測(cè)試名稱(chēng)表達(dá)式可以是測(cè)試數(shù)據(jù)中的字符串字段,測(cè)試數(shù)據(jù)字符串字段的連接以及帶有 %s 和 %d 動(dòng)詞的fmt.Sprintf() 調(diào)用。
擴(kuò)展了對(duì) Testify 的支持
![](/d/20211017/d6950523f39f9ad3faa172a5d4f6d00c.gif)
現(xiàn)在,IDE 可以識(shí)別啟動(dòng)測(cè)試套件的測(cè)試功能,并提供一種啟動(dòng)單個(gè) suite.Run 和 suite.T().Run,只要子測(cè)試名稱(chēng)是字符串常量即可。另外,可以從“Run”工具窗口重新運(yùn)行子測(cè)試,以避免重新運(yùn)行整個(gè)頂級(jí)測(cè)試。
此外,GoLand 現(xiàn)在可以在一個(gè)測(cè)試用例中使用相同的方法名稱(chēng)分別運(yùn)行 Testify 套件。
最后但并非最不重要的一點(diǎn)是,當(dāng)您準(zhǔn)備寫(xiě)測(cè)試函數(shù)時(shí)(testing.T 作為第一個(gè)參數(shù)),GoLand 會(huì)在可能的情況下自動(dòng)傳遞該參數(shù)。這適用于 testify/assert,testify/require,testify/mock 和 testify/suite 包。
03 代碼檢查
![](/d/20211017/1b58f5595d3e604b7d0d186466af00e2.gif)
不正確使用類(lèi)似 Println/Printf 的函數(shù),GoLand 會(huì)有警告,之前只對(duì)標(biāo)準(zhǔn)庫(kù)起作用,現(xiàn)在支持 github.com/pkg/errors, github.com/sirupsen/logrus 和 go.uber.org/zap 包。
最重要的是,我們添加了占位符突出顯示和折疊,以及添加格式字符串參數(shù)的意圖。
![](/d/20211017/c7931e1e46561802e9c3201f4eb2f1a1.gif)
context.CancelFunc(不稱(chēng)為代碼檢查)報(bào)告了 context 取消的潛在不安全使用。當(dāng) context 返回的 “cancel” 函數(shù)未在所有執(zhí)行路徑上調(diào)用時(shí),此功能特別有用。
更多細(xì)節(jié)可以查看標(biāo)準(zhǔn)庫(kù)文檔:https://docs.studygolang.com/pkg/context。
04 代碼編輯
time 包的支持
Go 語(yǔ)言中文網(wǎng)注:Go 中的時(shí)間格式化和其他語(yǔ)言不一樣,其他語(yǔ)言都是使用 YYYY、MM、dd 等,而 Go 使用魔法數(shù)字:2006-01-02 15:04:05 這樣的固定時(shí)間。有些人可能記不住或習(xí)慣其他語(yǔ)言的格式。GoLand 2020.3 做了這樣的轉(zhuǎn)換,見(jiàn)下圖。
![](/d/20211017/eae9eb29d95604a8319ad1583b5838f3.gif)
我們?cè)黾恿藢?duì) time 包的支持,因此您可以更輕松地使用 time 和 duration。GoLand 將通過(guò)代碼補(bǔ)全(⌃Space)建議使用 ISO-8601 中 YYYY,MM,DD 占位符的預(yù)定義 Layout。
在某個(gè) token 上按 ⌘P,IDE 將顯示其含義。Layout 標(biāo)記也有語(yǔ)法突出顯示。代碼完成還建議在字符串文字之外的標(biāo)準(zhǔn)時(shí)間 Layout。
更智能的包處理
![](/d/20211017/b13565b40ef261c43c2078ce0d99d894.gif)
現(xiàn)在,IDE 可以更聰明地為您經(jīng)常使用的包的提示項(xiàng)配置優(yōu)先級(jí),這些包是在項(xiàng)目的 go.mod 文件中明確聲明的。
我們還添加了一個(gè)選項(xiàng),可將包從項(xiàng)目導(dǎo)入路徑和完成建議中完全排除。您可以通過(guò) Alt + Enter 或在排除窗口中執(zhí)行此操作。
支持變量 shadowing
![](/d/20211017/ef4f39cbe6f0772897492e6265eee1e5.gif)
GoLang 可以更輕松地發(fā)現(xiàn)變量 shadowing。
IDE 顯示的變量現(xiàn)在可以用不同的顏色區(qū)分 shadowing 變量。
導(dǎo)航到 shadowing 聲明意圖操作,使您可以立即切換到 shadowing 聲明。
類(lèi)型參數(shù)中的方括號(hào)
我們跟蹤了 Go 小組對(duì) 泛型 [1] 的更新,并增加了對(duì)泛型語(yǔ)法方括號(hào)的支持。
請(qǐng)注意,Settings | Go 中的 “ Enable generics (experimental support for type parameters) ” 默認(rèn)情況下處于關(guān)閉狀態(tài)。您需要明確選擇該復(fù)選框才能開(kāi)始使用該功能。
更多關(guān)于該功能的信息可以 查看該文章 [2] 。
05 其他改進(jìn)
![](/d/20211017/671a6e9a332769a5e59bb91be2a38a8a.gif)
在測(cè)試文件中鍵入 func 時(shí),默認(rèn)情況下,GoLand 會(huì)提示出 bench 和 test 函數(shù)模板。
![](/d/20211017/e289edbc34b1435347e184c13d577fb6.gif)
當(dāng)您在基準(zhǔn)測(cè)試中輸入 for 時(shí),IDE 建議使用 b.N 的 for 循環(huán)來(lái)完成它。
改進(jìn)了拼寫(xiě)和語(yǔ)法檢查器
![](/d/20211017/01d19d24dc391e6c8e1564353ee793da.gif)
現(xiàn)在,當(dāng)您按 Alt + Enter 時(shí),建議會(huì)立即顯示在對(duì)話框中。此外,新版本的 LanguageTool 語(yǔ)法檢查引擎還改進(jìn)了英語(yǔ)檢查功能,并增加了對(duì) 10 種其他語(yǔ)言的支持。
06 和我編碼(結(jié)對(duì)編程)
![](/d/20211017/8758672007b5b06888b56da0ab1a8fa4.gif)
GoLand 2020.3 支持 Code With Me(EAP),這是 JetBrains 的一項(xiàng)新服務(wù),用于協(xié)作開(kāi)發(fā)和結(jié)對(duì)編程。與我一起編寫(xiě)代碼使您可以與他人共享您當(dāng)前在 IDE中 打開(kāi)的項(xiàng)目,并實(shí)時(shí)進(jìn)行協(xié)作。
關(guān)于該功能的更多信息請(qǐng)查看 這篇文章 [3] 。
07 其他
其他的改進(jìn)有:
UI 改進(jìn);
VSC 更新;
Web 開(kāi)發(fā)增強(qiáng);
對(duì)數(shù)據(jù)庫(kù)支持增強(qiáng);
關(guān)于這塊的詳細(xì)信息可以到 這里查看 [4] 。
08 總結(jié)
GoLand 是一個(gè)收費(fèi)軟件,可以試用 30 天。如果覺(jué)得不錯(cuò),歡迎支持!當(dāng)然免費(fèi)的 VSCode 也香,對(duì)吧!
參考資料 [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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Goland支持泛型了(上機(jī)實(shí)操)
- C++算法與泛型算法(algorithm、numeric)
- Golang 使用接口實(shí)現(xiàn)泛型的方法示例
- Go 泛型和非泛型代碼詳解