我有一个Option
英寸的 rust 迹,我需要在一个接受切片的函数中使用它.如何从Option
中得到一个切片,其中Some(x)
的切片有一个元素,None
的切片有零个元素?
我有一个Option
英寸的 rust 迹,我需要在一个接受切片的函数中使用它.如何从Option
中得到一个切片,其中Some(x)
的切片有一个元素,None
的切片有零个元素?
这将产生一个Option
的不变切片:
the_option.as_ref()
.map(core::slice::from_ref)
.unwrap_or_default()
这将产生一个Option
的可变切片:
the_mutable_option.as_mut()
.map(core::slice::from_mut)
.unwrap_or_default()
第一个使用Option
的as_ref
或as_mut
方法生成第二个Option
,其中包含对仍在原始Option
中的值的引用.
然后,他们使用Option
的map
方法,如果第二个Option
是Some
值,则将core::slice::from_ref
或core::slice::from_mut
应用于Some
值内的参考,将其更改为一个元素切片.
然后,它使用Option
的unwrap_or_default
方法消耗第二个Option
.如果是Some
,则生成上一步中的一个元素切片.否则,如果值为None
,则生成默认切片which is an empty slice.