gpt4 book ai didi

rust - 为什么 Default::default() 不是一个常量函数?

转载 作者:行者123 更新时间:2023-12-03 08:05:36 31 4
gpt4 key购买 nike

从 Rust 1.6 开始,当前特征 Default定义为,

pub trait Default {
fn default() -> Self;
}

为什么不是这个

pub trait Default {
const fn default() -> Self;
}

最佳答案

有很多方法可以实现非 constDefault::default。例如:

use rand;

struct MyStruct {
v: u32
}
impl Default for MyStruct {
fn default() -> Self {
Self {
// RNG will never be const!
v: rand::random()
}
}
}

较少人为的示例包括引用全局变量,例如克隆某些全局默认配置的 Arc

即使 rustc 支持,更改 Default::default 也将是一个 Not Acceptable 破坏性更改,并且可以说是不受欢迎的。

关于rust - 为什么 Default::default() 不是一个常量函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72467891/

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