< 返回版块

namesrping 发表于 2020-12-31 09:12

let shift_by_timed_noise = |v| { let sample_point = P3::new(v.x, v.y, ctx.time.as_secs_f32().sin() / 5.); let t = fbm.noise(sample_point) * 60.; v.translate(V2::new(t, t)) };

valora库案例复制到本机运行,这段函数会报如下错误:

error[E0282]: type annotations needed --> src\main.rs:31:36 | 31 | let sample_point = P3::new(v.x, v.y, ctx.time.as_secs_f32().sin() / 5.); | ^ cannot infer type | = note: type must be known at this point

error: aborting due to previous error

这段不知道怎么理解,新手渣渣求大佬解释下类型推定的原理。

评论区

写评论
uno 2021-01-05 11:02

类型推导也和部分语言功能挂钩,stable没有nightly的那部分功能,自然就推导不出来了。

--
👇
namesrping: 并不是,其他案例运行正常,就这个案例报错。看错误代码应该是类型推导出错了。 自己添加了类型就可以运行了。

作者 namesrping 2021-01-05 10:29

并不是,其他案例运行正常,就这个案例报错。看错误代码应该是类型推导出错了。 自己添加了类型就可以运行了。

👇
ezlearning: https://blog.csdn.net/u012067469/article/details/106581015

注意:由于valora的依赖项中有些包使用了测试版本,所以需要使用rustc nightly版本才能顺利安装。如果使用rustc stable版本会报错。

是这个原因吗?

ezlearning 2020-12-31 10:44

https://blog.csdn.net/u012067469/article/details/106581015

注意:由于valora的依赖项中有些包使用了测试版本,所以需要使用rustc nightly版本才能顺利安装。如果使用rustc stable版本会报错。

是这个原因吗?

1 共 3 条评论, 1 页