|
|
1
3
最大的问题是你失去了所有的打字;例如,假设我有一个函数,我想对各种类型的数字进行操作,所以我写:
但是,如果我将0.42(float64)传递给这个函数,或者字符串
你能做的最好的事情就是在运行时处理这个问题,要么panic(),要么返回错误;这显然比编译时错误要模糊得多。 这是迄今为止最大的不利因素。
我得看看那些的细节
听起来像
另一个用例是当你真的想接受各种各样的类型时;将参数传递给SQL查询是一个常见的例子,或者
一般来说,避免
|
|
|
2
1
空命名接口在Go中没有意义,因为与C#等其他语言不同,任何类型(C#中的类)如果与接口签名匹配,都可以转换为特定接口。因此,在Go中,“类”(结构类型)不需要从接口继承(例如,在类型定义时声明接口)。 那么,你的问题的答案是: Go中空接口的最佳实践是不要在Go中定义命名的空接口。 更新 :由于下面的评论,我改变了主意,我同意为了文档和IDE中更快的导航,使用空命名接口的用例可能有限。 |
|
EarthTurtle · 调整泛型抛出迭代器的异常类型 2 年前 |
|
wallop · 实现必须明确提及所有接口字段,还是可以跳过它们? 2 年前 |
|
|
Reelie · C#11-通过抽象类在接口中静态抽象成员? 2 年前 |
|
Addem · 在OCaml签名中放入类型声明的正确方法是什么 2 年前 |