compiler-errors - 使用 RustFFT 时出现 "type annotations required"

标签 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<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 });
    }
}

我得到错误:

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

我不明白为什么会出现这个错误;我之前使用过 RustFFT,它没有任何问题,而且我使用它的方式完全相同。我找不到任何关于 RustFFT 错误的信息。



使用rust 版本:

╰─$ rustc --version                                                                               
rustc 1.26.0-nightly (9c9424de5 2018-03-27)

最佳答案

问题(来自您的评论)是您没有使用 fft。 Rust 可以推断类型,但它只能在有足够上下文的情况下这样做。如果您从不使用 fft,则编译器没有足够的信息来确定完整的类型应该是什么。

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

关于compiler-errors - 使用 RustFFT 时出现 "type annotations required",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538227/

相关文章:

json - 反序列化不规则内容的JSON

concurrency - 为什么有并发的矩阵乘法比没有并发的慢?

generics - 通用函数和 async_trait 的困难

excel - 如何解决这个 "ambiguous name detected Worksheet_Change"?

c++ - 在 OS X 上将 SDL2 与 CLion 结合使用

c++ - 静态分配的可变大小数组如何在 C++ 中工作?

c++ - 前向声明未按预期工作

python - 将 Python 对象传递给 Rust

rust - 是否可以有一个带有泛型的结构定义,其中类型既是特征类型又具有生命周期?

function - 未定义VBA访问编译错误变量