gpt4 book ai didi

arrays - 在 Rust 中初始化字符串数组

转载 作者:行者123 更新时间:2023-11-29 07:48:08 26 4
gpt4 key购买 nike

我想创建一个固定大小的可变数组。这些元素稍后在程序中初始化。如何初始化数组?

我试过这样做:

let mut array: [String; 126] = [String::new(); 126];

它给了我错误:

the trait bound 'std::string::String: std::marker::Copy' is not satisfied
the trait 'std::marker::Copy' is not implemented for 'std::string::String'

如何用新字符串初始化数组?

最佳答案

目前,数组的初始化还是有点古怪。特别是,Default 在这里会很有用,但它只适用于最多 32 个数组:

let array: [String; 32] = Default::default();

超过这个数的任何数字都将无法编译,因为虽然 Rust 1.47 现在实现了数组类型的通用大小的一些特征,但 Default 还不是其中之一。 Default 的这 32 个实现是“某种程度上”手动添加的。

我们可以使用替代容器类型来克服这个问题,例如 Vecvec! 宏可让您根据需要多次克隆字符串以填充新向量:

let mut array: Vec<String> = vec![String::new(); 126];

当然,根据您的用例,您也可以考虑偷懒,只使用 Iterator API 收集最终结果。 .

关于arrays - 在 Rust 中初始化字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44186660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com