首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gofmt重构工具重命名全局变量

使用gofmt重构工具重命名全局变量
EN

Stack Overflow用户
提问于 2014-02-11 14:52:32
回答 1查看 3.6K关注 0票数 11

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

基于这个博客帖子代码,我有一个简单的例子:

代码语言:javascript
复制
package main

import (
    "fmt"
)

var v = 12

func main() {
    fmt.Println(v)
}

我正在尝试将重命名为,将v变量重命名为m,应用此菜谱:

代码语言:javascript
复制
gofmt -r 'v -> m' -w main.go

重构后的代码看起来(损坏)如下:

代码语言:javascript
复制
package m

import (
    "fmt"
)

var m = m

func m() {
    m
}

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-11 15:08:02

你正在尝试的东西有一个问题,gofmt手动状态

使用-r标志指定的重写规则必须是窗体的字符串: pattern -> replacement 模式和替换都必须是有效的Go表达式。在该模式中,单字符小写>标识符充当与任意子表达式匹配的通配符;这些表达式将被替换为相同的标识符。

(加了突出显示)

如果您有var vee = 12并使用-r vee -> foo,一切都会好起来的。但是,使用v -> mv -> m匹配每个Go表达式,将其标识为v,并由m替换它。

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

https://stackoverflow.com/questions/21705172

复制
相关文章

相似问题

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