比如说,我有一个变量类型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中的一种,我目前无法通过设置一个并集来定义一种新的类型。
1
共 4 条评论, 1 页
评论区
写评论--
👇
Grobycn: 用
Option<String>
学习一下:https://blog.vgot.net/archives/rust-some.html
let x = Domain::String("xxxx");
用
Option<String>