println!()仅当对象实现Debug特性时



我的结构中有一个方法,它采用泛型类型T。该类型可以实现Debug特性,但我的结构不需要它
我需要调试我的应用程序,并且可以打印它将非常有用。不幸的是,我不能这样做,因为该类型可能没有实现Debug特性。我可以在结构定义中指定T: Debug,但我需要在很多地方添加它,以便编译代码。是否只有当类型实现此特性时才能调用println!()宏?

类似这样的东西:

if argument.implements(Debug) {
println!("{:?}", argument);
}

目前不可能。使用任何特征都需要封闭函数具有该约束。

然而,当性状特化稳定时,这种将是可能的。例如,debugit机箱在使用night编译时提供条件调试打印。

最新更新