【发布时间】:2021-01-14 10:27:12
【问题描述】:
我正在学习空接口。我发现虽然有很多解释——也在 Stackoverflow 上——关于空接口的含义以及它们如何工作,但关于何时/为什么使用它们、何时避免、注意事项是什么以及关于最佳实践的信息很少。选择使用它们的利弊。
在 Go 聊天室中,我读过一些关于尽可能避免使用空接口但没有正确参数的讨论。其他人自豪地回应说,他们的代码设计中的空接口为零。
我最感兴趣的是用于库和框架(旨在被其他人重用/扩展)。
现在我正在阅读一个带有相关库的框架代码库,它在许多地方都充满了 emtpy 接口。其中一些让我感到困惑,我想知道是否所有的用法都是合理的。就像框架提供“用户管理”一样,AppConfiguration 和 UserPreferences 之类的东西都是空接口。在代码中(靠近 db 层),用户的电子邮件在技术上被视为用户偏好。接口定义更具体一些不是更好吗?
【问题讨论】: