gpt4 book ai didi

scala - 这是设计Scala API的良好返回类型模式吗?

转载 作者:行者123 更新时间:2023-12-04 13:20:25 25 4
gpt4 key购买 nike

我在Scala中经常看到这种类型的模式(found this example here):

class UserActor extends Actor {
def receive = {
case GetUser(id) =>
// load the user, reply with None or Some(user)
val user: Option[User] = ...
sender ! user
case FindAll() =>
// find all users
val users: List[User] = ...
sender ! users
case Save(user) =>
// persist the user
sender ! Right(user)
}
}

因此,根据您得到的调用,您可以:选项[用户],列表[用户],权限[用户]。这种方法很好!我只是出于兴趣问这是否是最佳选择?例如(这可能是一个不好的例子):总是返回List [User]来尝试进行泛化会使API变得更好还是更坏?因此,当找不到用户或保存失败时,该列表将为空。我很好奇...关于上述“模式”如何改进的其他建议?

我只是想为这种API样式确定一个完美的模式,在这种模式下,您有时会得到一个实体,有时却没有实体,有时又得到了它们的列表。是否有“最佳”方法来做到这一点,或者每个人都扮演自己的角色?

最佳答案

返回类型应有助于阐明API的预期行为。

如果GetUser返回了List,则开发人员可能会感到困惑,并想知道是否可能返回多个用户。当他们看到返回了Option时,他们将立即了解预期的行为。

我曾经不得不使用一个相当复杂的API,该API提供了以您描述的方式概括的CRUD操作。我发现很难理解,难以定义并且很难使用它。

关于scala - 这是设计Scala API的良好返回类型模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11837966/

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