无法理解生锈泛型函数错误

时间:2016-07-12 05:25:23

标签: rust

我试图获得一段Rust通用代码进行编译,并且在进行修复之后将其缩小到此代码编译失败的范围。我不确定这到底是什么(E0308对我没什么帮助) - 我一定是在遗漏一些傻事:

fn is_fail<bool>() -> bool { false }
fn main(){
  let failure:bool = is_fail();
  //if ! failure {
    println!("{}", failure);
  //}
}

错误是:

error: mismatched types [--explain E0308]
 --> <anon>:1:30
1 |> fn is_fail<bool>() -> bool { false }
  |>                              ^^^^^ expected type parameter, found bool
note: expected type `bool`
note:    found type `bool`

1 个答案:

答案 0 :(得分:2)

在函数中,类型参数bool会隐藏内置类型bool。所以你的函数声明与

基本相同
fn is_fail<T>() -> T { false }

显然不是很好的类型。