问题描述
虽然我们有重构工具来重命名结构字段,但我们没有用于删除结构字段及其用法的重构工具。
如何从任何支持 golang 的 IDE 跨文件安全地删除结构字段及其用法[写和读访问]?
据我所知,没有一个 IDE(vim-go、intellij)支持这个。
我曾想过删除结构字段并运行
go vet
这将返回每个文件上的所有错误(以及行号)并编写一个脚本来删除这些行,但不幸的是,在文件中遇到第一个错误后,兽医停止报告错误。
解决方法
这不是可以完全自动化的。假设您从类型 X
中删除了字段 Point struct {X,Y int}
。 IDE这样使用时应该怎么做:
p := Point{X: 1,Y: 2}
r := p.X / p.Y
或者像这样:
func f(x,y int) {}
f(p.X,p.Y)
所需要的东西显然不是 IDE 可以“猜测”的。
要删除结构字段,请将其从类型定义中删除,然后手动修复编译器错误。