首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么vscode golang插件在保存时删除操作符周围的空格?

为什么vscode golang插件在保存时删除操作符周围的空格?
EN

Stack Overflow用户
提问于 2021-05-31 20:08:18
回答 2查看 672关注 0票数 3

如果有关系的话,我已经写了很多年的代码了,但我现在只是同时探索golang和vscode。

在我的Linux盒上,我安装了vscode (1.56.2)和golang插件(0.25.1)。

我一直在学习一些简单的golang教程,当我保存我编辑的文件时,我注意到了一件奇怪的事情。

这是我的台词:

代码语言:javascript
复制
out = append(out, base + v)

当我拯救它的时候,它变成了这样:

代码语言:javascript
复制
out = append(out, base+v)

它删除了"+“操作符周围的空格。我搜索了vscode和golang扩展设置,几乎找不到它在保存时会做什么。

事实上,在设置中,我有“在保存上的格式”UNchecked。

那么,这是怎么回事,为什么?我有能力配置这个吗?

EN

回答 2

Stack Overflow用户

发布于 2021-06-01 00:54:27

那么,是什么在做这件事,为什么呢?

编辑器在保存时运行gofmt命令。该命令使用空格显示运算符优先级。

下面的代码段是用gofmt命令格式化的。注意操作数是如何更接近较高优先级运算符的。

代码语言:javascript
复制
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命令删除问题中+周围的空格,因为+优先于,

票数 4
EN

Stack Overflow用户

发布于 2021-05-31 22:44:21

这与VScode无关。如果您有此文件:

代码语言:javascript
复制
package main
import "fmt"

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

运行gofmt file.go可以为您提供:

代码语言:javascript
复制
package main

import "fmt"

func main() {
        var a []int
        a = append(a, 1+2)
        fmt.Println(a)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67779685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档