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 關注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消