gpt4 book ai didi

rust - 如何在 Rust 中定义关联的 const 或类型别名?

转载 作者:行者123 更新时间:2023-11-29 08:10:34 25 4
gpt4 key购买 nike

基本上,我只想要“快捷方式”:

impl Foo {
const c : i32 = 42;
type V = i32;
fn bar() -> V { c }
}

但是编译器提示:

error: associated constants are experimental (see issue #29646)

最佳答案

如错误消息中所述,相关常量 (const c: i32 = 42) 是实验性的。

这意味着,除非您切换到夜间编译器启用该功能,否则您不能将常量嵌套在实现或特征中。

但是,您可以在模块范围内拥有常量:

const C: i32 = 42;

如果修复此问题,您将遇到下一个错误:关联类型只允许在 traits 及其实现中使用,而不是在“固有”实现中使用。

再一次,解决方法是在模块范围内提取类型别名:

type V = i32;

编译以下代码:

const C: i32 = 42;
type V = i32;

struct Foo;

impl Foo {
fn bar() -> V { C }
}

并且 CV 是私有(private)的(只能在模块内访问)它们不会泄漏。

关于rust - 如何在 Rust 中定义关联的 const 或类型别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41588182/

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