本文简要介绍rust语言中 std::option::Option.zip_with
的用法。
用法
pub fn zip_with<U, F, R>(self, other: Option<U>, f: F) -> Option<R> where F: FnOnce(T, U) -> R,
拉链 self
和另一个 Option
与函数 f
。
如果 self
是 Some(s)
并且 other
是 Some(o)
,则此方法返回 Some(f(s, o))
。否则,返回None
。
例子
#![feature(option_zip)]
#[derive(Debug, PartialEq)]
struct Point {
x: f64,
y: f64,
}
impl Point {
fn new(x: f64, y: f64) -> Self {
Self { x, y }
}
}
let x = Some(17.5);
let y = Some(42.7);
assert_eq!(x.zip_with(y, Point::new), Some(Point { x: 17.5, y: 42.7 }));
assert_eq!(x.zip_with(None, Point::new), None);
相关用法
- Rust Option.zip用法及代码示例
- Rust Option.unwrap_or_default用法及代码示例
- Rust Option.as_deref_mut用法及代码示例
- Rust Option.get_or_insert_with用法及代码示例
- Rust Option.iter_mut用法及代码示例
- Rust Option.or_else用法及代码示例
- Rust Option.unwrap_unchecked用法及代码示例
- Rust Option.get_or_insert用法及代码示例
- Rust Option.expect用法及代码示例
- Rust Option.get_or_insert_default用法及代码示例
- Rust Option.insert用法及代码示例
- Rust Option.map_or用法及代码示例
- Rust Option.as_mut用法及代码示例
- Rust Option.map用法及代码示例
- Rust Option.and_then用法及代码示例
- Rust Option.filter用法及代码示例
- Rust Option.unwrap_or用法及代码示例
- Rust Option.transpose用法及代码示例
- Rust Option.iter用法及代码示例
- Rust Option.flatten用法及代码示例
- Rust Option.as_deref用法及代码示例
- Rust Option.contains用法及代码示例
- Rust Option.as_ref用法及代码示例
- Rust Option.replace用法及代码示例
- Rust Option.unwrap用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::option::Option.zip_with。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。