【发布时间】:2015-03-03 04:58:54
【问题描述】:
我目前正在探索 Rust,但被以下问题难住了:
假设我想用 MarkerTrait “注释”一个函数参数(即,使 trait 成为注释):
use std::marker::MarkerTrait;
pub trait X: MarkerTrait { }
pub trait MyInterface {
fn foo(&self, bar: u32+ X) -> u32;
}
// make this compile in the playpen
fn main() { }
到目前为止,编译器将拒绝它并显示以下内容:消息:
<anon>:6:25: 6:28 error: expected a reference to a trait [E0172]
<anon>:6 fn foo(&self, bar : u32 + X) -> u32;
^~~
这是一个错误还是故意的?如果是故意的,我应该使用什么解决方法将所需的信息添加到我的代码中?是否有其他方法来注释函数参数,例如棉绒可以捡起来吗?
编辑:好的,看来我问错了问题。在java中,函数参数可以被注释。我将如何在 Rust 中做类似的事情?
【问题讨论】:
-
一个具体的类型加上一个界限并没有真正的意义。该类型将支持该特征(在这种情况下,您可以只接受该特征)或不支持。在同一编译期间,您不能让一种类型既实现特征又不实现特征。也许你可以解释更多关于你想做什么?你以哪种方式关心你有一个
u32? -
“注释函数参数”到底是什么意思?除了参数的类型,你还能注释什么?
标签: rust