小编jon*_*v95的帖子

用写!宏用字符串而不是字符串文字

我写了以下函数:

fn print_error(text: &str) {
    let mut t = term::stdout().unwrap();
    t.fg(term::color::RED).unwrap();
    (write!(t, text)).unwrap();
    assert!(t.reset().unwrap());
}
Run Code Online (Sandbox Code Playgroud)

它应该取出字符串并以红色在控制台上打印出来.当我尝试编译时,编译器说:

error: format argument must be a string literal.
 --> src/main.rs:4:16
  |
4 |     (write!(t, text)).unwrap();
  |                ^^^^
Run Code Online (Sandbox Code Playgroud)

经过大量的搜索,我发现我能够用eg替换text变量,"text"它会起作用,因为它是一个字符串文字,write!宏需要它.

我如何使用write!字符串而不是字符串文字?或者是否有更好的方法来对终端输出进行着色?

rust

7
推荐指数
1
解决办法
988
查看次数

创建map [string] struct {}并赋值

我正在使用github.com/samalba/dockerclient并想创建一个Container.因此,该方法是CreateContainer,它需要一个ContainerConfig.

ContainerConfig是一个结构.并且有一个字段Volumes,其类型是type map [string] struct {}.

我知道我可以创建这样的地图 make(map[string]struct{})

但是如何为地图分配值?

go

6
推荐指数
1
解决办法
9184
查看次数

标签 统计

go ×1

rust ×1