print()我可以通过在范围内定义另一个函数来覆盖内置函数的行为print() ,如https://play.golang.org/p/Y2ly31oXU67中所示例如,是否有可能在 go 中即时改变导入函数的行为fmt.Println()?
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
如果你想“改变”一个内置函数,请查看非常好的猴子补丁实用程序https://github.com/bouk/monkey(并注意警告,它只在测试函数中真正有用,我就是其中之一拒绝导入该包的任何产品代码)
慕姐4208626
TA贡献1852条经验 获得超7个赞
导入名为“fmt”的不同包并实现该包中所需的任何功能。这是一个例子:
文件 go.mod:
module test
文件 main.go
package main
import (
"test/fmt"
)
func main() {
fmt.Println("Hello, playground")
}
文件 fmt/fmt.go:
package fmt
import (
"fmt"
"log"
)
func Println(format string, args ...interface{}) {
msg := fmt.Sprintf(format, args...)
log.Printf(msg)
}
此答案中的代码不会按照问题中的要求修改导入的函数。
- 2 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消