gpt4 book ai didi

enums - 为什么 Phobos 使用枚举作为常量?

转载 作者:行者123 更新时间:2023-12-03 14:43:52 24 4
gpt4 key购买 nike

为什么火卫一使用enum定义常量?例如,在 std.math 中:

enum real E = 2.7182818284590452354L;

为什么不使用全局 immutable ? enum的优缺点是什么?在 immutable ?

最佳答案

  • 枚举只是一个右值,而不是一个左值。它没有地址。
  • 枚举只能是编译时常量,而不是运行时常量。
  • 枚举不会向目标文件添加任何膨胀。
  • 枚举编译速度更快,在编译时使用更少的内存。通常它可以忽略不计,但如果你正在做足够复杂的元编程,它就会开始变得重要。

  • 一般来说,对于编译时常量而不是运行时常量,使用枚举并没有什么缺点,它的优点是让你的意图绝对清晰并且效率更高。

    编辑:枚举的另一个用例可以消除编译器是否应该在运行时或编译时评估函数的歧义。如果将函数的结果分配给 immutable堆栈变量,该函数将在运行时进行评估。如果您使用 enum在同一范围内,将在编译时评估结果。

    关于enums - 为什么 Phobos 使用枚举作为常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622697/

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