修改go中导入的函数

print()我可以通过在范围内定义另一个函数来覆盖内置函数的行为print() ,如https://play.golang.org/p/Y2ly31oXU67中所示

例如,是否有可能在 go 中即时改变导入函数的行为fmt.Println()


凤凰求蛊
浏览 127回答 2
2回答

潇潇雨雨

如果你想“改变”一个内置函数,请查看非常好的猴子补丁实用程序https://github.com/bouk/monkey(并注意警告,它只在测试函数中真正有用,我就是其中之一拒绝导入该包的任何产品代码)

慕姐4208626

导入名为“fmt”的不同包并实现该包中所需的任何功能。这是一个例子:文件 go.mod:module test文件 main.gopackage mainimport (    "test/fmt")func main() {    fmt.Println("Hello, playground")}文件 fmt/fmt.go:package fmtimport (    "fmt"    "log")func Println(format string, args ...interface{}) {    msg := fmt.Sprintf(format, args...)    log.Printf(msg)}在操场上运行它。此答案中的代码不会按照问题中的要求修改导入的函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go