【发布时间】:2018-09-07 08:36:06
【问题描述】:
下面的代码有问题
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 });
}
}
我得到错误:
错误[E0283]:需要类型注释:无法解析`_:rustfft::FFTnum` --> src/ctdsp.rs:19:15 | 19 | 让 fft = rustfft::FFTplanner::new(false).plan_fft(data_size as usize); | ^^^^^^^^^^^^^^^^^^^^^^^^ | = 注意:`<:fftplanner>>::new` 需要 错误:由于先前的错误而中止
我不明白为什么会出现这个错误;我之前使用过 RustFFT,它没有任何问题,而且我使用它的方式完全相同。我找不到有关 RustFFT 的此错误的任何信息。
Rust 版本:
╰─$ rustc --version rustc 1.26.0-nightly (9c9424de5 2018-03-27)
【问题讨论】:
-
我不熟悉这个库,但我猜测:你从不使用
fft,或者(似乎)将它与任何其他类型联系起来。就像你写了vec![],但从来没有在里面放任何东西:编译器不知道你想使用什么类型。 -
其实......当我处理数据时(
fft.process(&mut input_array, &mut output_array);它开始正常工作......那么,rust可以找出类型表单上下文吗? -
这是类型推断的工作原理:从使用中推断类型。如果你不使用任何东西,编译器将无法使用任何东西。
标签: compiler-errors rust