Rust 为什么整型文字推断出的类型与它添加到的类型相同,而不是默认的整型类型i32?
为什么变量Rust 为什么整型文字推断出的类型与它添加到的类型相同,而不是默认的整型类型i32?,rust,Rust,为什么变量no_type推断为i8,而不是i32(默认类型) x和y的类型是什么 fn main() { let x = 12; let y = 13; println!("{}", x + y); let z: i8 = 10; println!("{}", z + x); } 只有一个相关的实现涉及i8和非参考整数: impl Add<i8> for i8 { type Output = i8; } i32(默认类型) “
no_type
推断为i8
,而不是i32
(默认类型)
x
和y
的类型是什么
fn main() {
let x = 12;
let y = 13;
println!("{}", x + y);
let z: i8 = 10;
println!("{}", z + x);
}
只有一个相关的实现涉及
i8
和非参考整数:
impl Add<i8> for i8 {
type Output = i8;
}
i32
(默认类型)
“默认”不是这个的最佳名称。它仅在类型推断无法确定具体类型时使用。因此,您经常会听到这种称为“回退”类型的方法
另见:
i8
,因此该类型将传播到其他变量。回答您的问题了吗?默认值仅在无法推断类型时使用。您看到了吗?非常感谢。我对生锈和堆垛溢出还不熟悉,我很惊讶ppl有多大的帮助been@r_duck如果你对它满意,你应该考虑一下。不管什么原因,安东尼奥。
impl Add<i8> for i8 {
type Output = i8;
}
fn main() {
let a = 1;
let b = 1 + a;
let c = 1 + b;
let d = 1 + c;
let e = 1 + d;
let f = 1 + e;
let g = 1 + f;
let sum = g + 1i8;
let _: () = a; // found type `i8`
let _: () = sum; // found type `i8`
}