(int) + 4*5;
Run Code Online (Sandbox Code Playgroud)
为什么这样做(添加带有值的类型)是可能的?(尝试使用g ++和gcc。)
我知道这没有任何意义(也没有影响),但是我想知道为什么这是可能的。
如果我尝试创建一个函数指针向量,编译器总是会抱怨错误的类型(尽管我没有明确声明任何类型):
fn abc() {}
fn def() {}
fn main()
{
let a = vec![abc, def];
}
Run Code Online (Sandbox Code Playgroud)
error[E0308]: mismatched types
--> src/main.rs:5:13
|
5 | let a = vec![abc, def];
| ^^^^^^^^^^^^^^ expected slice, found array of 2 elements
|
= note: expected struct `Box<[fn() {abc}], _>`
found struct `Box<[fn(); 2], std::alloc::Global>`
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to previous error
For more information about …Run Code Online (Sandbox Code Playgroud)