早上回复了下,但说要等审核。。。。。换个论坛吧
---
2. 我这里编译是不通过的:
error[E0308]: mismatched types
--> src/main.rs:2:16
|
2 | let _a:i32 =(1.0+8.9);
| --- ^^^^^^^^^ expected `i32`, found floating-point number
| |
| expected due to this
For more information about this error, try `rustc --explain E0308`.
3. 我之前没有学过其他支持泛型的语言,没有先入为主,所以还是觉得很好理解的。
这个turbofish并不是强制的,大部分时候不需要这么写,有时候才需要。
这里`i32` 就是myfn里的泛型T。
4. 我理解 const fn 并不是说【返回结果】固定,而是【计算过程】固定。或者说,只要入参在编译期已知,那么就可以在编译期算出返回结果,而不用等到运行时。
比如 const fn sqrt(x: i32)->i32 { x * x } 。那么就可以用:
const XXX: i32 = sqrt(100);
这里的XXX就是编译器算出来的,就可以当常数用。
而典型的反例就是 需要申请内存的函数。
5. 我不确定你问的是不是 静态分发(impl Trait)和动态分发(dyn Trait)。 TheBook里有明确的介绍,这两个的优缺点和适用场景。
--
修改:hellowub FROM 122.231.68.*
FROM 122.231.68.*