我正在试验用于重构的gofmt工具功能

基于这个去的博客帖子代码,我有一个简单的例子:
package main
import (
"fmt"
)
var v = 12
func main() {
fmt.Println(v)
}我正在尝试将重命名为,将v变量重命名为m,应用此菜谱:
gofmt -r 'v -> m' -w main.go重构后的代码看起来(损坏)如下:
package m
import (
"fmt"
)
var m = m
func m() {
m
}我在这里错过了什么?
发布于 2014-02-11 15:08:02
你正在尝试的东西有一个问题,gofmt手动状态
使用-r标志指定的重写规则必须是窗体的字符串:
pattern -> replacement模式和替换都必须是有效的Go表达式。在该模式中,单字符小写>标识符充当与任意子表达式匹配的通配符;这些表达式将被替换为相同的标识符。
(加了突出显示)
如果您有var vee = 12并使用-r vee -> foo,一切都会好起来的。但是,使用v -> m,v -> m匹配每个Go表达式,将其标识为v,并由m替换它。
https://stackoverflow.com/questions/21705172
复制相似问题