gpt4 book ai didi

rust - 强制执行更严格的类型检查

转载 作者:行者123 更新时间:2023-12-01 23:12:26 25 4
gpt4 key购买 nike

<分区>

我有一个关于在 Rust 中定义类型的问题。例如,我定义了两种类型:

pub type Distance = f32;
pub type Cost = f32;

我定义这些类型而不是直接使用 f32 的原因是为了代码清晰,并在我犯错误/思考不正确时尝试捕捉。

例如,我有一个函数。

pub fn calculate_cost_from_distance(distance : Distance) -> Cost

但是,我可以将 Cost 传递给该函数而不会引起编译器的任何提示(因为它们实际上都是 f32)。

所以,我的问题是,有什么方法可以强制编译器将这些类型视为不同的类型并抛出错误吗?

如果可能的话,最好不必为距离和成本创建完全自定义的类型,重新定义所有运算符等,因为我希望它们在使用时表现得像 float 。

非常感谢任何想法或其他方法来解决这个问题!

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