2016-06-12 57 views
1

我即将根据给定的参数返回一个字符串。如何在Rust中创建一个格式化的字符串?

fn hello_world(name:Option<String>) -> String { 
    if Some(name) { 
     return String::formatted("Hello, World {}", name); 
    } 
} 

这是一个不可用的相关功能! - 我想清楚我想要做什么。我已经浏览了文档,但找不到任何字符串生成器函数或类似的东西。

回答

4

使用format! macro

fn hello_world(name: Option<&str>) -> String { 
    match name { 
     Some(n) => format!("Hello, World {}", n), 
     None => format!("Who are you?"), 
    } 
} 

生锈,格式化字符串使用宏系统,因为格式化参数是在编译时间,这是通过程序宏实施typechecked。

还有其他问题与您的代码:

  1. 不指定什么为None做的 - 你不能只是“失败”返回一个值。
  2. if的语法不正确,您希望if let模式匹配。
  3. 从文体上看,您希望在块的末尾使用隐式返回。
  4. 很多(但不是全部)的情况下,您想要接受&str而不是String
相关问题