gpt4 book ai didi

thrift - 你如何在 Thrift IDL 中说客户端应该在结构中包含一组字段中的一个?

转载 作者:行者123 更新时间:2023-12-04 18:09:19 29 4
gpt4 key购买 nike

假设我在包含两个字段的 Apache Thrift IDL 文件中定义了一个结构。例如:

struct Thing {
1: optional string name,
2: optional i32 size
}

这意味着客户端可以提供没有字段、名称、大小或名称和大小的 Thing 对象。但是如果我想要一个 Thing 对象有一个名称或一个大小(独占或)怎么办?目前我必须使用我的实现代码来防止客户端提供没有字段或两个字段的事物;以及记录/评论客户端应该如何指定 Thing 对象。

简而言之,如果有人定义了一个包含各种字段的结构,是否可以在 IDL 本身中表达您只希望在客户端中提供这些字段中的一个? (我使用的是 Apache Thrift 0.9.0。)如果您能说出以下内容(| = 或),那就太好了:
struct Thing {
1: required (string name | i32 size)
}

最佳答案

使用联合:

union Thing {
1: string name,
2: i32 size
}

Optional 可以省略, required 不允许/对联合有用。

联合已在 0.9.0 (IIRC) 中引入,但 0.9.1 改进了对它们的支持。

关于thrift - 你如何在 Thrift IDL 中说客户端应该在结构中包含一组字段中的一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923120/

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