当前位置: 首页 > 编程笔记 >

Rust 如果让/而让

司徒良哲
2023-03-14
本文向大家介绍Rust 如果让/而让,包括了Rust 如果让/而让的使用技巧和注意事项,需要的朋友参考一下

示例

if let

组合模式match和if语句,并允许进行简短的非详尽匹配。

if let Some(x) = option {
    do_something(x);
}

这等效于:

match option {
    Some(x) => do_something(x),
    _ => {},
}

这些块也可以具有else语句。

if let Some(x) = option {
    do_something(x);
} else {
    panic!("option was None");
}

此块等效于:

match option {
    Some(x) => do_something(x),
    None => panic!("option was None"),
}

while let

组合模式匹配和while循环。

let mut cs = "Hello, world!".chars();
while let Some(x) = cs.next() {
    print("{}+", x);
}
println!("");

打印H+e+l+l+o+,+ +w+o+r+l+d+!+。

等效于使用loop {}和match语句:

let mut cs = "Hello, world!".chars();
loop {
    match cs.next() {
        Some(x) => print("{}+", x),
        _ => break,
    }
}
println!("");
           

 类似资料:
  • 问题内容: 我一直在阅读有关Swift中Optional的内容,并且看到了一些示例,这些示例用于检查Optional是否持有值,并且在可能的情况下–使用未包装的值进行操作。 但是,我已经看到在Swift 2.0中关键字是最常用的。我想知道是否已从Swift 2.0中删除或是否仍然可以使用它。 我应该改变我的计划包含到? 问题答案: 并达到相似但截然不同的目的。 的“其他”情况必须退出当前范围。通常

  • 本文向大家介绍Rust 通用结果方法,包括了Rust 通用结果方法的使用技巧和注意事项,需要的朋友参考一下 示例 如果配置文件不存在,则输出: 如果解析失败,则输出: 注意:随着项目的发展,使用这些基本方法(文档)来处理错误会很麻烦,而又不会丢失有关错误的来源和传播路径的信息。同样,过早地将错误转换为字符串以处理多种错误类型绝对是一个坏习惯,如上所述。更好的方法是使用板条箱error-chain。

  • 我有一个JSF2(Richfaces 4.1.0)项目在eclipse中运行。我正在尝试使用mojarra jsf实现(2.2.0)在WAS 8.5上运行它。然后,maven提供了lib,但服务器似乎覆盖了它们,因为在控制台中,我可以读取Myfaces已加载。 我在想为什么会这样?如何让项目使用mojarra而不使用was管理控制台中的共享LIB? 这是代码中与maven相关的部分: 提前谢谢

  • 问题内容: 可以正常工作(没有语法错误),但是 抛出Node 4.1.0和babel 这是预期的行为吗?我知道这是一个愚蠢的例子。我只是想知道这是否是错误。 问题答案: 是的,这是预期的行为。语句的生产规则是 但声明不是a,因此不允许在以下位置进行声明:

  • 我有很多来自供应商的类,它们喜欢在属性访问上随机抛出RuntimeException。 我不能更改类,不能添加注释,而且为每个类定义混合是不现实的,因为堆栈的这部分经常更改。 如果属性的getter抛出异常,如何使Jackson忽略该属性?

  • transform 函数的作用是如果发现类型是 16 进制的,会把 value 转化为 10 进制的。上面的实现会让 typescript 报错,如何更好地实现 transform 函数让 typescript 不报错