3

我正在使用 Scrooge 生成 Thrift 接口代码,如下所示:

struct UserInfo {
  1: i64 userId,
  2: string name
}

service userservice {
  UserInfo getUserById(1:i64 userId)
}

Scrooge 将从上面的 IDL 文件生成此方法:def getUserById(userId: Long): Future[UserInfo].

但是,在 scala 中,可能不存在的值可以通过 Option 数据类型表示。因此,以 Scala 方式生成的节俭代码可能看起来像def getUserById(userId: Long): Future[Option[UserInfo]]. 虽然选项是特定于 scala 的,但无论如何让 Scrooge 支持这个?

非常感谢你!

4

1 回答 1

1

您可以使用list<T>模仿选项。并且由于 Option 可以被视为 0|1 元素的集合,因此从语义角度来看,这种替换也是正确的。

要将此列表转换为 Scala 代码中的选项,您可以使用headOption方法。

于 2015-06-10T09:05:22.730 回答