Rust 为什么我会得到这个错误;找不到类型选项“collect”的方法;?

Rust 为什么我会得到这个错误;找不到类型选项“collect”的方法;?,rust,Rust,我正在做一个生锈的问题,其中一个字符串具有任意长度,但可以为null,并且需要根据其最后两个图形进行分类 我的理解是,选项用于解释在编译时未知时可能为null或不为null的内容,因此我尝试了以下方法: extern crate unicode_segmentation; use unicode_segmentation::UnicodeSegmentation; pub fn reply(message: &str) -> &str { let message

我正在做一个生锈的问题,其中一个字符串具有任意长度,但可以为null,并且需要根据其最后两个图形进行分类

我的理解是,
选项
用于解释在编译时未知时可能为null或不为null的内容,因此我尝试了以下方法:

extern crate unicode_segmentation;

use unicode_segmentation::UnicodeSegmentation;

pub fn reply(message: &str) -> &str {
    let message_opt: Option<[&str; 2]> = message.graphemes(true).rev().take(2).nth(0).collect();
}

这对我来说没有意义,因为我(认为)我正在尝试收集迭代器的输出,而不是收集选项。

错误消息没有骗你<代码>选项不有一个名为
收集
的方法

我(想)我正在尝试收集迭代器的输出

返回一个
选项
<代码>选项未实现
迭代器
;您不能在其上调用
collect

选项

您也不能这样做:


我会把它写成

let mut graphemes = message.graphemes(true).fuse();

let message_opt = match (graphemes.next_back(), graphemes.next_back()) {
    (Some(a), Some(b)) => Some([a, b]),
    _ => None,
};

哈哈,我不认为这是在骗我:)哦,我认为这个选项指的是左手边,这就是为什么我感到困惑。