gpt4 book ai didi

go - 为什么 Println() 调用错误接口(interface)的行为?

转载 作者:行者123 更新时间:2023-12-01 22:45:22 24 4
gpt4 key购买 nike

在下面的代码中:

package main

import "fmt"

type binaryFunc func(int, int) int

func add(x, y int) int {
return x + y
}

func (f binaryFunc) Error() string {
return "binFunc error"
}

func main() {
fmt.Println(binaryFunc(add))
}

输出:
     binFunc error
binaryFunc函数类型实现 error 的行为界面 Println()调用 Stringer 的行为界面。

为什么 Println()方法调用 Error() error的方法界面?

最佳答案

Println 使用类型的默认格式。根据 fmt包文档:

  1. If an operand implements the error interface, the Error method will be invoked to convert the object to a string, which will then be formatted as required by the verb (if any).
binaryFunc类型实现 error界面,所以这就是打印的内容。

关于go - 为什么 Println() 调用错误接口(interface)的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63333042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com