首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gofmt重写规则可以删除多余的参数类型吗?

gofmt重写规则可以删除多余的参数类型吗?
EN

Stack Overflow用户
提问于 2014-04-04 17:14:38
回答 1查看 577关注 0票数 5

如果您有类似于:func MyFunc(a int, b int)的代码

一个gofmt重写规则是否可以将其更改为:func MyFunc(a, b int)

我试过:gofmt -r "f(x t, y t) -> f(x, y t)" myfile.go

但我明白了:parsing pattern f(x t, y t) at 1:5: expected ')', found 'IDENT' t

我也尝试过:gofmt -r "f(x int, y int) -> f(x, y int)" myfile.go

但是,对于int而不是t,它给出了一个类似的错误。

我读过gofmt documentation。网络搜索找不到任何有用的东西。

我故意使用单个字符标识符来匹配表达式。

我怀疑问题可能在于试图匹配这一类型,因为它可能不被视为一个“表达”。

用gofmt能做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-04 19:20:32

不,这是不可能的-因为go fmt将patter作为“表达式”,查看http://golang.org/src/cmd/gofmt/rewrite.go parseExpr()函数。

Go规范(http://golang.org/ref/spec#Expressions)清楚地说明了“表达式通过将运算符和函数应用于操作数来指定值的计算”。因此,fmt尝试将模式“f( it,it)”解析为函数调用,而不是"t“,它需要逗号或括号。

您不能编写许多"func MyFunc(a int,b int)“的模式,因为它的函数定义,不是一个有效的go表达式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22869017

复制
相关文章

相似问题

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