gpt4 book ai didi

rust - 为什么 Rust 不能做更复杂的类型推断?

转载 作者:行者123 更新时间:2023-11-29 08:21:49 26 4
gpt4 key购买 nike

<分区>

Chapter 3 Rust 编程语言,以下代码用作 Rust 无法管理的一种类型推断的示例:

fn main() {
let condition = true;

let number = if condition { 5 } else { "six" };

println!("The value of number is: {}", number);
}

解释为:

Rust needs to know at compile time what type the number variable is, definitively, so it can verify at compile time that its type is valid everywhere we use number. Rust wouldn’t be able to do that if the type of number was only determined at runtime; the compiler would be more complex and would make fewer guarantees about the code if it had to keep track of multiple hypothetical types for any variable.

我不确定我理解其中的基本原理,因为这个例子看起来确实像是一个简单的编译器可以推断出类型的东西。

究竟是什么让这种类型推断如此困难?在这种情况下,condition 的值可以在编译时清楚地推断出来(它是真的),因此数字的类型也可以是(它是 i32?)。

我可以看到事情可能会变得更加复杂,例如,如果您尝试跨多个编译单元推断类型,但是这个特定示例是否有一些东西会增加很多编译器的复杂性?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com