如何重写Vec.append的“赞成”扩展名?

佛法

当以下内容提交给编译器时

fn main()
{
    let abc = vec![10u, 20u, 30u];

    let bcd = vec![20u, 30u, 40u];

    let cde = abc.append(bcd.as_slice());

    println!("{}", cde);
}

编译器发出以下警告:

不推荐使用此函数,而推荐使用extend()

等效的外观如何使用extend

克里斯·摩根

看一下以下签名extend

fn extend<I: Iterator<T>>(&mut self, iterator: I)

请注意,它通过可变引用获取self,并且它不需要切片,而需要迭代器(这是更通用的)。

最终结果将如下所示:

abc.extend(bcd.into_iter());

或这个:

abc.extend(bcd.iter().map(|&i| i))

(请记住,Vec.iter()产生的东西会遍历引用而不是值,因此需要.map(|&i| i)。)

我有点惊讶,它是推荐extend,因为push_all是一个更直接的替代品,采取分片,而不是一个迭代器:

abc.push_all(bcd.as_slice());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

htaccess重写并删除.php扩展名

来自分类Dev

用pdf扩展名重写URL

来自分类Dev

Realurl重写,无需扩展名

来自分类Dev

htaccess不重写扩展名或斜杠

来自分类Dev

用pdf扩展名重写URL

来自分类Dev

如何重写URL以删除aspx扩展名并重定向斜杠?

来自分类Dev

如何打印C扩展名的值?

来自分类Dev

如何从Chrome扩展名读取文件?

来自分类Dev

如何批量添加文件扩展名?

来自分类Dev

如何获取文件扩展名的IPreviewHandler?

来自分类Dev

如何隐藏“动作”扩展名

来自分类Dev

如何重命名键盘扩展名?

来自分类Dev

libgdx如何添加FreeType扩展名?

来自分类Dev

如何限制通用扩展名的类型

来自分类Dev

如何pxselect并获取所选扩展名

来自分类Dev

如何识别仆人所需的扩展名

来自分类Dev

如何批量添加文件扩展名?

来自分类Dev

如何cp多个文件扩展名?

来自分类Dev

如何更改多个文件的扩展名?

来自分类Dev

如何清理文件扩展名?

来自分类Dev

如何隐藏“动作”扩展名

来自分类Dev

如何用扩展名连接全名?

来自分类Dev

如何替换文件扩展名

来自分类Dev

如何禁用今天的扩展名?

来自分类Dev

如何修改gnome扩展名

来自分类Dev

如何打开未知扩展名的文件

来自分类Dev

如何运行 .Server 文件扩展名?

来自分类Dev

如何更改文件的扩展名

来自分类Dev

.htaccess-重写URL以删除扩展名并传递参数