Compiler errors &引用;“需要类型注释”;在使用fft时

Compiler errors &引用;“需要类型注释”;在使用fft时,compiler-errors,rust,Compiler Errors,Rust,我对以下代码有问题 extern crate num; extern crate rustfft; use rustfft::num_complex::Complex; use rustfft::num_traits::Zero; pub fn ct_fft(input: &Vec<f64>, sampling: u32) { let data_size = input.len(); let mut input_array: Vec<Complex

我对以下代码有问题

extern crate num;
extern crate rustfft;

use rustfft::num_complex::Complex;
use rustfft::num_traits::Zero;

pub fn ct_fft(input: &Vec<f64>, sampling: u32) {
    let data_size = input.len();

    let mut input_array: Vec<Complex<f64>> = Vec::with_capacity(data_size);

    let fft = rustfft::FFTplanner::new(false).plan_fft(data_size as usize);

    for v in input {
        input_array.push(Complex { re: *v, im: 0.0 });
    }
}
extern板条箱数量;
外部板条箱;
使用fft::num_complex::complex;
使用rustfft::num_traits::Zero;
pub fn ct_fft(输入:&Vec,采样:u32){
让数据_size=input.len();
让mut输入_数组:Vec=Vec::具有_容量(数据大小);
让fft=rustfft::FFTplanner::new(false)。计划fft(数据大小为usize);
对于输入中的v{
push(复数{re:*v,im:0.0});
}
}
我得到一个错误:

error[E0283]: type annotations required: cannot resolve `_: rustfft::FFTnum` --> src/ctdsp.rs:19:15 | 19 | let fft = rustfft::FFTplanner::new(false).plan_fft(data_size as usize); | ^^^^^^^^^^^^^^^^^^^^^^^^ | = note: required by `<rustfft::FFTplanner<T>>::new` error: aborting due to previous error 错误[E0283]:需要类型批注:无法解析`\u0:rustft::FFTnum` -->src/ctdsp.rs:19:15 | 19 |让fft=rustfft::FFTplanner::new(错误)。计划fft(使用的数据大小); | ^^^^^^^^^^^^^^^^^^^^^^^^ | =注意:`::new所需` 错误:由于上一个错误而中止 我不明白为什么我会犯这个错误;我以前使用过RustFFT,它工作起来没有问题,我现在使用的方式完全一样。我找不到有关此错误的任何信息



锈蚀版本:

╰─$ rustc --version rustc 1.26.0-nightly (9c9424de5 2018-03-27) ╰─$ rustc——版本 rustc 1.26.0-每晚(9c9424de5 2018-03-27) 问题(来自您的评论)是您没有使用
fft
。Rust可以推断类型,但它只能在有足够的上下文的情况下这样做。如果从不使用
fft
,编译器就没有足够的信息来计算完整的类型


请记住,Rust中的每个变量都有一个完整的类型。只是在某些情况下,锈迹可以自行解决,并让您省略类型。这不是那种情况。

我对该库不熟悉,但猜测一下:您从未使用过
fft
,或者(似乎)将其与任何其他类型绑定。就像你写的是
vec![]
,但不要在其中放入任何内容:编译器无法知道您要使用的类型。实际上。。。当我处理数据时(
fft.process(&mut-input\u-array,&mut-output\u-array)
它开始正常工作…所以,rust可以从上下文中找出类型?这就是类型推断的工作原理:从用法中推断类型。如果你不使用任何东西,编译器就没有什么可使用的。谢谢,这澄清了很多。我从C语言的几年中就开始生锈了。我对类型的猜测最多的是u auto_类型扩展。。。