m0_52815888
2021-03-11 13:00
采纳率: 100%
浏览 249

Rust如何同时给多个变量匹配类型?

比如我现在有两个变量m: Option<i32>, n: Option<i32>,我如何同时给这两个变量做类型匹配?

试过if let None = m || n 这种不行

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • 幻灰龙 2021-03-11 14:09
    最佳回答
    let m = Some(32);
    let n = Some(32);
    if let (Some(m), Some(n)) = (m , n) {
        println!("{}, {}", m, n)
    }

    你可以使用元组 `tuple` 放一起,然后一次性匹配,用 match 也可以。

    let m = Some(32);
    let n = Some(32);
    match (m,n) {
        (Some(m), Some(n))=>{
            println!("Sopm({}), Some({})", m, n)
        },
        (Some(m), None)=>{
            println!("Some({}), None", m)
        },
        (None, Some(n))=>{
            println!("None, Some({})", n)
        },
        (None, None)=>{
            println!("None, None")
        }
    }
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题