Rust中使用的default_type_params功能是什么?

时间:2014-12-15 07:44:43

标签: rust

我看到一些看起来像这样的Rust代码:

#![feature(default_type_params)]

经过大量谷歌搜索后,我对此一无所知。这是什么?我什么时候应该使用它?

1 个答案:

答案 0 :(得分:5)

这是一个名为默认类型参数的启用功能,但您已经知道了,所以让我给您举个例子:

#![feature(default_type_params)]

struct Foo<A=(int, char)> { // default type parameter here!
    a: A
}

fn default_foo(x: Foo) {
   let (_i, _c): (int, char) = x.a;
}

fn main() {
   default_foo(Foo { a: (1, 'a') })
}

如果没有默认类型参数,则需要显式设置参数:

struct Foo<A> {
    a: A
}

fn default_foo(x: Foo<(int, char>)) {
   let (_i, _c): (int, char) = x.a;
}

fn main() {
   default_foo(Foo { a: (1, 'a') })
}

此处被盗的示例:https://github.com/rust-lang/rust/pull/11217