gpt4 book ai didi

enums - Ada 枚举到值

转载 作者:行者123 更新时间:2023-12-04 22:11:38 25 4
gpt4 key购买 nike

我可以用另一种方式处理这个问题,但不是那么干净,但希望能够利用以下几点:

type Prefix is (Yocto, Zepto, Atto, Femto, Pico, Nano,
Micro, Milli, Centi, Deci, None, Deca, Hecto, Kilo,
Mega, Giga, Tera, Peta, Exa, Zetta, Yotta);
for Prefix use (
Yocto => -24,
Zepto => -21,
Atto => -18,
Femto => -15,
Pico => -12,
Nano => -9,
Micro => -6,
Milli => -3,
Centi => -2,
Deci => -1,
None => 0,
Deca => 1,
Hecto => 2,
Kilo => 3,
Mega => 6,
Giga => 9,
Tera => 12,
Peta => 15,
Exa => 18,
Zetta => 21,
Yotta => 24);

GNAT 不会提示代表条款。但是,我似乎无法实际获取值,因为我知道与此相关的唯一属性与位置有关,而不是分配值。

最佳答案

枚举从未用于此类目的,您不应该尝试将它们用于此目的。 (我认为主要目的是在某些外部表示或硬件寄存器或其他东西中定义具有 0、1、... 以外的值的枚举。)但是,您实际上可以在保持代码几乎相同的同时解决这个问题:

type Prefix is (Yocto, Zepto, Atto, Femto, Pico, Nano,
Micro, Milli, Centi, Deci, None, Deca, Hecto, Kilo,
Mega, Giga, Tera, Peta, Exa, Zetta, Yotta);
type Prefix_To_Integer_Map is array (Prefix) of Integer;
Power_of_Ten : constant Prefix_To_Integer_Map := (
Yocto => -24,
Zepto => -21,
Atto => -18,
Femto => -15,
Pico => -12,
Nano => -9,
Micro => -6,
Milli => -3,
Centi => -2,
Deci => -1,
None => 0,
Deca => 1,
Hecto => 2,
Kilo => 3,
Mega => 6,
Giga => 9,
Tera => 12,
Peta => 15,
Exa => 18,
Zetta => 21,
Yotta => 24);

应该和你所拥有的一样干净。并且说 Power_Of_Ten (My_Prefix)My_Prefix'Enum_RepPrefix'Enum_Rep(My_Prefix) 或其他任何东西更具描述性。

关于enums - Ada 枚举到值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28992487/

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