簡體   English   中英

如何匹配具有多個字段的期權?

[英]How to match for an Option with multiple fields?

如何匹配具有多個字段的期權? 我有以下代碼:

let opt_windowrecv = glfw_context.create_window(1280, 720, "Hello World!", glfw::Windowed); // returns Option<(Window, Receiver<(f64, WindowEvent)>)>

let window = match opt_windowrecv { // Does not compile
    Some(window, _) => window,
    None            => return
};

它抱怨說:

此模式有2個字段,但相應的變體有1個字段

但是,使用此替代方法確實可以:

let opt_windowrecv = glfw_context.create_window(1280, 720, "Hello World!", glfw::Windowed); // returns Option<(Window, Receiver<(f64, WindowEvent)>)>

let windowrecv = match opt_windowrecv {
    Some(windowrecv) => windowrecv,
    None            => return
};

let (window, _) = windowrecv;

我是在做錯什么,還是Rust編譯器中的錯誤? 我正在使用glfw-rs庫

let window = match opt_windowrecv {
    Some((window, _)) => window,
    None            => return
};

應該管用。 Some的破壞應該是一個元組,而不是2個參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM