当前位置: 首页 > 知识库问答 >
问题:

如何从Rust中的选项中获取切片?

汝和裕
2023-03-14

我在Rust中有一个Option,我需要在接受切片的函数中使用它。如何从一个Option中获取一个切片,其中一些(x)的切片有一个元素,而的切片有零个元素

共有2个答案

范云
2023-03-14

您可以使用板条箱提供的两个功能:opt_slice和opt_slice_mutref_slice

pub fn opt_slice<A>(opt: &Option<A>) -> &[A]
pub fn opt_slice_mut<A>(opt: &mut Option<A>) -> &mut [A]
林亦
2023-03-14

这将生成一个选项的不可变片段

the_option.as_ref()
    .map(core::slice::from_ref)
    .unwrap_or_default()

这将产生一个选项的可变片段

the_mutable_option.as_mut()
    .map(core::slice::from_mut)
    .unwrap_or_default()

它们首先使用选项作为_ref作为_mut方法生成第二个选项,该选项包含对仍在原始选项内的值的引用。

然后,他们使用选项映射方法,如果第二个选项Some值,则将core::slice::from_refcore::slice::from_mut应用于Some值内的引用,将其更改为单元素切片。

然后,它使用选项展开或默认方法使用第二个选项。如果是Some值,则生成上一步中的一个元素切片。否则,如果它是None值,则生成默认切片,即空切片。

 类似资料:
  • 我正在学习AngularJS并尝试实现一个表单。我有一个select元素,我希望能够根据所选文本更改所选值的颜色。 HTML: CSS: 但这不起作用。这里的问题是什么? EDIT1:默认选项在选中时应该是灰色的,甚至在用户打开下拉列表时也应该是灰色的。Rest其他选项应该在两个条件下都有其黑色文本(在选择和下拉列表显示)。 提前道谢。

  • 我有一个启用了的JList,我希望将项的选择顺序传递给另一个进程。 我尝试在JList上使用并检查是否将其添加到数组中,但是,这不会添加位于选定项之下的新项,它只添加位于JList中当前选定项之上的项。 我要做的事情有什么明显的错误吗?

  • 我有一个大小未知的数组,我想获取该数组的一个切片,并将其转换为静态大小的数组: 我该怎么做?

  • 我在while循环中有一个带有multiple=“true”属性的select option表单字段。如果选择选项应该是多选的,我们应该在名称上放一个方括号,如[]。 Ref:如何在php中获取选择框的多个选定值? 在这种情况下,我如何从每个选择框数组中获取值

  • 我目前正在使用 但这并没有返回选择模型中的一个选定项。

  • Project的构建没有任何错误,但是当我进入exploper并查找文件夹时,它没有生成。我尝试清理和构建,无效缓存和重新启动,但它不起作用。如何获取r.java文件? 这是构建日志 我在下面提到了这样的线程,并尝试了一切,但没有任何工作。 这个有什么已知的bug吗?