簡體   English   中英

為什么 vscode golang 插件在保存時會刪除運算符周圍的空格?

[英]Why does the vscode golang plugin remove spaces around operators on save?

如果重要的話,我已經寫代碼很多年了,但我現在才同時探索 golang 和 vscode。

在我的 Linux 機器上,我安裝了 vscode (1.56.2) 和 golang 插件 (0.25.1)。

我一直在逐步完成一些簡單的 golang 教程,當我保存我編輯過的文件時,我注意到發生了一件奇怪的事情。

這是我的行:

out = append(out, base + v)

當我保存它時,它變成了這樣:

out = append(out, base+v)

它刪除了“+”運算符周圍的空格。 我搜索了 vscode 和 golang 擴展設置,但我幾乎沒有發現它在保存時會做什么。

實際上,在“設置”中,我未選中“保存時格式化”。

那么,這是怎么回事,為什么? 我有能力配置這個嗎?

那么,這是怎么回事,為什么?

您的編輯器在保存時運行gofmt命令。 該命令使用空格來顯示運算符優先級。

以下代碼段使用gofmt命令格式化。 注意操作數如何更接近更高優先級的運算符。

fmt.Println(a + b + c + d)
fmt.Println(a * b * c * d)
fmt.Println(a + b*c + d)
fmt.Println(a*b + c*d)

gofmt命令刪除問題中+周圍的空格,因為+優先於,

這與 VScode 無關。 如果你有這個文件:

package main
import "fmt"

func main() {
   var a []int
   a = append(a, 1 + 2)
   fmt.Println(a)
}

運行gofmt file.go會給你:

package main

import "fmt"

func main() {
        var a []int
        a = append(a, 1+2)
        fmt.Println(a)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM