gpt4 book ai didi

go - 是否可以为空接口(interface)键入别名,然后向该别名添加函数?

转载 作者:行者123 更新时间:2023-12-01 20:23:18 26 4
gpt4 key购买 nike

在 Go 中,是否可以在空接口(interface)中键入别名,然后向该别名添加函数?
我想做类似的事情:

type DbJSON interface{}
func (src *DbJSON) Value() (driver.Value, error) {
return json.Marshal(src)
}

最佳答案

不,你不能这样做。方法实现属于具体类型。该规范禁止在接口(interface)上声明方法或指向接口(interface)和指针类型的指针。
Spec: Method declaration:

The receiver is specified via an extra parameter section preceding the method name. That parameter section must declare a single non-variadic parameter, the receiver. Its type must be a defined type T or a pointer to a defined type T. T is called the receiver base type. A receiver base type cannot be a pointer or interface type and it must be defined in the same package as the method.

关于go - 是否可以为空接口(interface)键入别名,然后向该别名添加函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62767048/

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