我只想要一个空格分隔的String
的参数变量从std::env::args()
获得,我一直在使用fold
函数这样创建:
std::env::args()
.fold("".to_string(), |accum, s| accum + &s + " ")
然而,这在末端产生了额外的空间,这是不需要的。我尝试使用truncate
函数,但truncate
不返回String
,只是修改了现有的String
,并且这还需要创建中间绑定以便使用String
的len()
调用来定义截断的String
应该有多长(我相信,由于Rust当前的词汇借用规则,它本身需要一个中间绑定!)
5条答案
按热度按时间yqlxgs2m1#
在Rust中,有什么惯用的方法来打印所有命令行参数?
或者使用Itertools的
format
或format_with
更好:我只想要一个空格隔开
String
或
如果你使用Itertools,你可以使用上面的
format
/format_with
例子和format!
宏。join
也很有用:在其他情况下,您可能需要使用
intersperse
:请注意,这不如其他选择有效,因为每次迭代都要克隆
String
。ih99xse12#
这里有一个使用迭代器的解决方案,并且不依赖于stdlib
(性能方面,这在发布模式下大放异彩,优化打开[ playground ])
hmtdttj43#
这里有一个替代方案,
我只是想要一个空间分隔
String
的参数变量从std::env::args()
获得cs7cruho4#
下面是使用
fold
的版本vmpqdwk35#