- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在发出返回一个 Option
的调用,其中包含一个 Result
,而该 Result
包含另一个包含自定义变体的 Option
。
我只对像这样的特定变体结果链感兴趣:
if let Some(Ok(Some(CustomVariant(Some(value))))) = expr {
// handle value case
}
这变得非常冗长并且没有真正帮助,因为我实际上将它视为我所有代码中的单个 Result
。我能不能以某种方式为这段代码起别名,这样我就可以做类似以下的事情,而不是编写整个 Option
和 Result
链:
alias TheCase(value) = Some(Ok(Some(CustomVariant(Some(value))));
if let TheCase(value) = expr {
//handle value
}
最佳答案
你不需要这样的别名,只需要使用一个函数来检索你想要的一个案例:
fn oneCaseICareAbout(value: &Option<Result<Option<Foo>, Bar>>) -> Option<&Foo> {
if let Some(Ok(Some(CustomVariant(Some(value)))) = value {
Some(value)
} else {
None
}
}
if let Some(value) = oneCaseICareAbout(expr) {
//handle value
}
不过,我会考虑重构您的代码以不使用这种类型。 Option<Result<_, _>>
已经是一个危险信号,但是 Some(Ok(Some(CustomVariant(Some(…))))
正处于疯狂的边缘!
关于syntax - 是否有一些语法糖用于匹配深层嵌套的选项和结果链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53299891/
对于NumericVector ,我可以将一个较小的 NumericVector 进行子集化通过使用 IntegerVector包含要子集化的位置。 例如假设x<-c(1,2,2,3,4,5) , i
我的 javascript 文件以配置开始... require.config({ baseUrl: 'scripts', paths: { 'code-mirror'
我的应用程序应该可以使用插件或通常称为糖的方式进行扩展。我会将它们放在 appname.app/Contents/sugars/sugarname.appnamesugar 下 这些是 bundle
我一直在尝试使用 Rcpp 在 C++ 中获取 vector 的等级。我使用了其他糖功能,例如 is_na(); C++中rank R函数有没有类似的糖函数。 Rcpp/ 中是否还有任何可用的 R 糖
我通过 Android Studio 使用 Sugar ORM 进行 Android 开发。 但我想我有一个非常相似的问题。如何将一个/多个结果查询显示为字符串或整数?我的实体看起来像这样: publ
入门读物: Prototypes as "classes" OO JS 按照上述模式,我创建如下库/API var Proto = { constructor: function () {
我在应用程序的第一个版本中使用了 SugarORM。现在,我正在开发第二个版本,它向数据库中添加了新表。 根据 SugarORM documentation “Sugar 会自动为新实体创建表,因此您
我是一名优秀的程序员,十分优秀!