< 返回版块

liangzid 发表于 2022-02-23 21:54

Tags:datatype;

比如说,我有一个变量类型Domain,它既可能是字符串String,也可能是空的Null。

如果是在python中我或许会这么声明:Union[String,None]

搜索得到的一种解决方案是:

enum Domain{
String(String),
Null,
}

后者在实例化时会报错,比如:

Err(Error("unknown variant `hotel`, expected `String` or `Null`", line: 1, column: 24))

这种。

我该怎么做才能达到我预期的目标呢?

补充:我是在使用serde_json解析json文件时遇到的上述问题。即在json文件中,“domain”这个key对应的value其强类型可能是String和Null中的一种,我目前无法通过设置一个并集来定义一种新的类型。

评论区

写评论
gorust21 2022-03-01 15:57

--
👇
Grobycn: 用 Option<String>

pader 2022-02-26 21:30

学习一下:https://blog.vgot.net/archives/rust-some.html

7sDream 2022-02-24 11:48

let x = Domain::String("xxxx");

Grobycn 2022-02-23 22:03

Option<String>

1 共 4 条评论, 1 页