rust - 如何使用println!()打印已命名参数的子项目?

标签 rust println

我了解了有关在打印时使用命名参数的信息,如下所示:

fn main() {
    println!("{nombre} le gusta el {actividad}",
    nombre= {"Clemente";"Roberto"}, actividad= "futbol");
}
我不知道如何输出“Roberto”而不是“Clemente”。有什么办法可以访问子项?说:
{nombre[1]}

最佳答案

{"Clemente";"Roberto"}block expression,不是任何对象或值。这意味着打开和关闭的小卷发之间的所有内容都将作为独立的statement进行评估。与...相同

fn main() {
    let s = {
        "Clemente";
        "Roberto" // the return value
    }; // s is set to "Roberto"

    println!("{nombre} le gusta el {actividad}",
        nombre=s, actividad= "futbol");
}
因此,当println!评估格式参数时,它仅接收返回的"Roberto",即所打印的内容。除非外部作用域的值发生了突变,否则该块中的所有其他内容都会丢失。
如果您打算将这两个名称存储在collection中,并使用索引打印一个或另一个,则需要定义一个集合和索引:["Clemente", "Roberto"][0]。您不能在格式设置字符串(例如println!({nombre[0]} ...)内建立命名参数的索引,因为它实际上只是一个被关联值替换的名称。
fn main() {
    println!("{nombre} le gusta el {actividad}",
        nombre=["Clemente", "Roberto"][0], actividad="futbol");
}
更好的是,在println!之前定义集合,以便以后阅读和维护!这不只是建议,通常被认为是最佳实践。
fn main() {
    let nombres = ["Clemente", "Roberto"]];

    println!("{nombre} le gusta el {actividad}",
        nombre=nombres[0], actividad="futbol");
}

关于rust - 如何使用println!()打印已命名参数的子项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63607855/

相关文章:

rust - 有没有办法在 proc-macro crate 中具有公共(public)特征?

rust - 如何不借钱就能确保 self 超越返回值(value)

casting - 转换任意类型以使用的安全性

java - ItemListener println 双输出

go - Go 中 fmt.Println() 和 println() 的区别

ios - 如何在 Swift 中打印 NSTimeInterval?

dataframe - 遍历行 polars rust

debian - 如何在 Debian 上的 VSCode 中正确设置 Rust 环境?

java - 有没有一种方法可以格式化您的输出,使其更加统一?

Java:从外部主方法调用 println