[英]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.