gpt4 book ai didi

java - 是否可以在 Thrift 结构中定义联合、嵌套结构和容器的默认值?

转载 作者:行者123 更新时间:2023-11-30 01:46:27 33 4
gpt4 key购买 nike

我有一个 thrift 结构,它有许多不同类型的字段。其中一些可能有也可能没有默认值。

问题是如何在.thrift文件中定义默认值?

enum E {
A = 1,
B = 2,
C = 3
}

struct Nested {
1: i64 f1,
2: required string f2,
3: optional E f3 = E.B
}

union Union {
1: string f1;
2: string f2;
}


struct TestStruct {
1: optional E f1 = E.A,
2: required i64 f2 = 1,
3: required string f3 = "f3",
4: Nested f4,
5: Union f5,
6: map<string, i64> f6,
7: set<i64> f7,
8: list<string> f8
}

考虑到这个例子,是否可以为字段 f4-f8 定义默认值?

我认为这是不可能的,但 thrift 文档并没有直接说明。

最佳答案

ConstantsDemo.thrift文件提供了一些示例,例如:

struct thing {
1: i32 hello,
2: i32 goodbye
}
const map<string,i32> GEN_MAP2 = { "hello" : 233, "lkj98d" : 853, 'lkjsdf' : 098325 }

所以解决方案可能如下所示:

struct TestStruct {
1: optional E f1 = E.A,
2: required i64 f2 = 1,
3: required string f3 = "f3",
4: Nested f4 = { f1 : 24, f2 : "i am required", f3 : E.B }
5: Union f5 = { f1 : "one" }
6: map<string, i64> f6 = { "hello": 42, "goodbye":24 },
7: set<i64> f7 = [ 1, 2, 3, -4 ]
8: list<string> f8 = ["bla","bla","bla"]
}

请注意 set<> 的语法和list<> (括号)不同于 map<> (大括号)。

我在 4 和 5 上遇到了一个奇怪的错误...不确定这是否是 bug或不。

关于java - 是否可以在 Thrift 结构中定义联合、嵌套结构和容器的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57753686/

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