gpt4 book ai didi

rust - 如何将 Vec<> 传播到 format!() 的参数中?

转载 作者:行者123 更新时间:2023-12-04 00:12:54 24 4
gpt4 key购买 nike

我有一个 Vec 字符串(strString),我想将它们用作 的参数格式!()。如果 JS 的 ... 语法可用,我会这样做:

let data = vec!["A", "B", "C"];
let result = format!("{} says hello to {} but not to {}", ...data);

Rust 中是否有任何替代方案可以使这样的事情成为可能,并且理想情况下不会过于冗长?

我认为部分困难在于 Vec 可能没有正确数量的参数,所以如果它有错误的数量,我可以接受它 panic 。

最佳答案

如果不手动编写大量代码或使用过程宏生成必要的代码,目前无法做到这一点。

作为更简单的解决方法,您可以尝试使用 dynfmt ,它提供了动态传递参数的方法。

use dynfmt::{Format, SimpleCurlyFormat};

let formatted = SimpleCurlyFormat.format("{} says hello to {} but not to {}", &["A", "B", "C"]);
assert_eq!("A says hello to B but not to C", formatted.expect("formatting failed"));

关于rust - 如何将 Vec<> 传播到 format!() 的参数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67105073/

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