【问题标题】:Enum of strings not printing expected value未打印预期值的字符串枚举
【发布时间】:2014-12-27 21:22:54
【问题描述】:

我有以下 D 程序:

import std.stdio;

enum XYZ : string
{
    A = "hello",
    B = "foo",
    C = "bar"
}

void main()
{
    writeln(XYZ.A);
    writeln(XYZ.B);
    writeln(XYZ.C);
}

打印出来的:

一个

B

C

我希望它可以打印 hellofoobar。为什么程序打印的是常量的 name 而不是它的 value?那么如何打印字符串值呢?

编译器为 DMD v2.063.2

【问题讨论】:

    标签: d dmd


    【解决方案1】:

    为什么程序打印的是常量的名称而不是它的值?

    作为一般规则,writeln 和其他函数会打印枚举值的名称,因为例如数字类型名称比数字传达更多信息。

    那如何打印字符串值呢?

    只需将其转换为字符串:

    cast(string)XYZ.A
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 2017-06-08
      相关资源
      最近更新 更多