1.go fix 和 go tool fix
命令go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码.这里所说的版本即Go语言的版本.
代码包的所有Go语言源码文件不包括其子代码包(如果有的话)中的文件.
修正操作包括把对旧程序调用的代码更换为对新程序调用的代码、把旧的语法更换为新的语法,等等。
向后兼容性 : 就是指新版本的编程语言程序能够正确识别和解析用该编程语言的旧版本编写的程序和软件,
以及在新版本的编程语言的运行时环境中能够运行用该编程语言的旧版本编写的程序和软件.
命令go fix其实是命令go tool fix的简单封装。这甚至比go fmt命令对gofmt命令的封装更简单。
像其它的Go命令一样,go fix命令会先对作为参数的代码包导入路径进行验证,以确保它是正确有效的.
像在本小节开始处描述的那样,go fix命令会把有效代码包中的所有Go语言源码文件作为多个参数传递给go tool fix命令。
实际上,go fix命令本身不接受任何标记,它会把加入的所有标记都原样传递给go tool fix命令。go tool fix命令可接受的标记如下表。
-diff : 不将修正后的内容写入文件,而只打印修正前后的内容的对比信息到标准输出。
-r : 只对目标源码文件做有限的修正操作。该标记的值即为允许的修正操作的名称。多个名称之间用英文半角逗号分隔。
-force : 使用此标记后,即使源码文件中的代码已经与Go语言的最新版本相匹配了,也会强行执行指定的修正操作。
该标记的值就是需要强行执行的修正操作的名称,多个名称之间用英文半角逗号分隔。
go tool fix -? // 查看帮助
https://github.com/hyper0x/go_command_tutorial/blob/71833ffcab991a2931d3106490d96008f45c3177/0.10.md