枚举构造函数(创建成员的成员)

2023-12-25

在 D 中,我试图创建一个成员有成员的枚举。我可以通过一个例子更好地解释我想要做什么,其中s and i代表我试图创建的子成员:


在Python中,我可以这样做:

class Foo(enum.Enum):
    A = "A string", 0
    B = "B string", 1
    C = "C string", 2

    def __init__(self, s, i):
        self.s = s
        self.i = i

print(Foo.A.s)

Java 可以做这样的事情:

public enum Foo {
    A("A string", 0),
    B("B string", 1),
    C("C string", 2);

    private final String s;
    private final int i;

    Foo(String s, int i) {
        this.s = s;
        this.i =i;
    }
}

我如何在 D 中执行此操作?我在官方教程中没有看到任何内容。如果出于某种原因我无法在 D 中执行此操作,那么有什么好的选择呢?


你可以用任何类型构建一个枚举,这里我们使用一个元组(很像Python)和一个小别名,以便于输入。

import std.stdio;
import std.typecons;

alias FooT = Tuple!(string, "s", int, "i");
enum Foo : FooT {
    A = FooT("A string", 0),
    B = FooT("B string", 1),
    C = FooT("C string", 2),
}


void main(string[] args) {
    writeln(Foo.A.s);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

枚举构造函数(创建成员的成员) 的相关文章

  • 像数组一样初始化类对象

    我正在为学校项目创建一个自定义向量类 我希望能够像这样初始化它 vector x 2 3 4 5 C 有什么办法可以做到这一点吗 这是我的班级的标题 class vector private int vsize int valloc dou
  • 重写继承的构造函数字段时的差异?

    考虑这个简单的 Scala 类 class A val d Int Scala 之间是否存在差异 无论是行为还是生成的字节码 class B d Int extends A d and class B override val d Int
  • PHP 构造函数返回 NULL

    我有这个代码 是否有可能User对象构造函数以某种方式失败 以便 this gt LoggedUser被分配了一个NULL构造函数返回后值和对象被释放吗 this gt LoggedUser NULL if SESSION verbiste
  • 为什么c++中的构造函数不能声明为静态?

    我最近读完了第一卷 Bruce Eckel 的 Thinking in C 现在转向将这些知识应用到一些实际用途中 我最近正在使用静态成员函数 并尝试将构造函数设为静态 但编译器对此不满意 我查了书上的原因 但没有找到 谁能解释为什么 P
  • 是什么使得 java 中的枚举不可实例化?

    我知道一个枚举 enum Year First Second Third Fourth 被转换成 final class Year extends Enum
  • C++ 模板静态成员实例化

    include
  • 枚举 NSString 的最佳方法

    我正在寻找枚举 objc 对象 例如 NSString 的方法 我记得 Xcode4 版本中有一个新功能 它提供了一种新的 enum 方法 但不清楚 有人知道吗 好吧 我自己回答 我想我犯了一个错误 这就是我上面提到的新功能 typedef
  • Ruby 对象打印为指针

    我正在尝试创建一个类 它有一个带有单个参数的构造函数 当我创建该对象的新实例时 它返回一个指针 class Adder def initialize my num my num my num end end y Adder new 12 p
  • 枚举和 Clojure

    在Java C世界中 人们经常使用枚举 如果我使用的是使用枚举的 Java 库 我可以在它们和关键字之间进行转换 例如 使用 java lang Enum valueOf e aget Ljava lang Enum e getEnumCo
  • JSLint 错误:意外的“这个”

    无法理解为什么 JSLint 对我的使用感到惊讶this在下面的代码中 function testConstr x use strict this joker Whyyy sooo seriousss this x x 对于这两个属性分配
  • JAXB 枚举字段未序列化

    我有以下课程 package dictionary import java io Serializable import java util Objects import javax xml bind annotation XmlEleme
  • 两个日期/时间字段之间的差异 - Lotus Notes

    我有三个可编辑的日期 时间字段 前两个是 field1 和 field2 样式 日历 时间控件 两者都显示时间 小时和分钟 例如 15 51 第三个字段也是 可编辑的 我想显示 field1 和 field2 之间的区别 例如 如果 fie
  • 在 C# 中使用反射列出枚举中的值

    我正在尝试使用反射来列出一个 Visual Studio 解决方案内的各个项目中的一些类的公共成员和方法 我尝试访问的所有类都是 C 的 并且它们都是从 C 类访问的 我用来进行这些调用的代码如下 public void PopulateE
  • Java:枚举:NoClassDefFoundError

    我在 J2EE 应用程序中使用枚举时遇到问题 我在无状态服务 bean 内的 switch case 中使用枚举 在运行时 我在 switch 语句上看到以下异常 Caused by java lang NoClassDefFoundErr
  • 删除向量类成员

    我有一个 A 类 其成员是另一个 B 类的对象指针向量 class A std vector
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • 为什么使用 Create 方法而不是使用“new”?

    静态构造函数有什么优点以及什么时候适合使用 public class MyClass protected MyClass public static MyClass Create return new MyClass 然后通过创建该类的实例
  • 类方法作为构造函数和继承

    问题很简单 如果一个班B继承一个类A并想要重写用作构造函数的 类方法 我猜你称其为 工厂方法 问题是B classmethod会想要重复使用A classmethod 但随后它必须创建类 A 的实例 同时它对类 A 进行子类化 因为作为类方
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • Java 枚举相对于旧的“类型安全枚举”模式的优势?

    在 JDK1 5 之前的 Java 中 Typesafe Enum 模式是实现只能采用有限数量值的类型的常用方法 public class Suit private final String name public static final

随机推荐

  • 使用 GDIPlus (WIn32 C++) 显示存储为带 alpha 资源的图标

    我有一个带有部分 alpha alpha 值在 0 到 255 之间 的图标 我想使用 GDIPlus 显示该图标 当使用采用直接文件名的 GDI 位图构造函数时 文件可以正确显示 然而 当从资源加载时 它在识别 alpha 时遇到问题 我
  • openpyxl 合并单元格:格式问题

    假设我有一个 xlsx 文件 并且该 Excel 文件合并了单元格 A2 和 B2 我还选择该合并单元格 并在合并单元格的顶部和底部放置边框 当我执行以下操作时 wb openpyxl load workbook file xlsx wb
  • 未解析的对象 [INFORMATION_SCHEMA] 引用。[表]

    我创建了一个 UDF 来访问 INFORMATION SCHEMA TABLES view CREATE FUNCTION dbo CountTables name sysname RETURNS INT AS BEGIN RETURN S
  • data.table::fread 一个 `integer64` 类型,仅手动重写一列的 colClass

    我有一个 csv 其中一列 ID 包含一个带有前导零的长整数 fread将其转换为integer64类型 我如何指定一列的类 然后让fread自动猜测剩余列的类 不确定这是否是一种 全有或全无 的情况 我有 50 多列 并且不想仅仅因为必须
  • Storybook 全局 Scss 变量

    CLI 工具 故事书 框架 Vue Nuxt 问题 我试图将全局 SCSS 变量引入 Storybook Stories 以便它们以与 Nuxt 中相同的方式运行组件 我已经尝试使用 sass resources loader 进行自定义
  • 在 Ansible 中组合多个循环的输出

    我正在使用 Ansible 在我的剧本中运行以下任务 其中有多个循环 以便从特定 xml 检索不同的标签 name Retrieve multiple xml tags valuei xml xmlstring item string xp
  • 如何在Gradle中使用pom类型依赖

    我需要从我的 pom java 库中生成传递依赖 这是我如何做的一个例子 plugins java library maven publish repositories some maven repo dependencies This i
  • 给定一些移动规则,如何枚举从棋盘左下角(a1)方块开始到达右上角(h8)方块的唯一路径?

    几周前 我被要求找到所有不同且独特的方法来到达棋盘的右上角 其中 x y gt 3 从 0 0 开始 知道你只能增加 x 和 y通过 1 我仍然无法找到可以解释如何在棋盘上导航的算法 所以我想知道你们是否有什么可以推荐的 换句话说 您会如何
  • 活动预订不会重新安排/取消

    我可以使用 gMail 标记安排活动 但是 如果我尝试重新安排活动 它只会在新时间制作第二个副本 并保持原始活动不变 如果我尝试取消某个活动 则什么也不会发生 我的确认示例如下 div div div div
  • Android 共享首选项不起作用

    我有一项服务 其中有4个全局静态int变量我有一个启动完成和呼叫事件的接收器 我想做的是每当执行 Call 事件接收器时保存这 4 个变量 并在执行 BOOT 接收器时检索它们 当然当我重新启动手机时 但两者都不起作用 另一件事设备重新启动
  • Powershell使用ODBC DSN而不是连接字符串从数据库读取

    我知道如何使用连接字符串从数据库读取值 即 建立数据库连接进行读取 conn New Object System Data SqlClient SqlConnection conn ConnectionString Server 10 10
  • GitHub Pages:如何将文本环绕在图像周围?

    我有一个 GitHub 博客页面 在博客页面中间的某个位置 我有一张图像 其中显示了以下 Markdown 内容 My Image pathto myimage png 这可以很好地显示图像 但我还想添加一个段落 包裹在图像的右侧 来描述图
  • bigquery 使用嵌套字段进行旋转

    我有一个带有架构的 bigquery 表 我想要这样的结果 flow timestamp channel name number of digits 2019 10 31 15 31 15 channel name 1 3 2019 10
  • Azure AD 在有效访问令牌上返回 Authentication_ExpiredToken

    我越来越Your access token has expired Please renew it before submitting the request 当我打电话时https graph windows net myorganiza
  • frisby 的 Get 方法不适用于 https

    我是弗里斯比测试的新手 今天发现无法访问https ip https ip来自 friby api 的地址 例如 frisby create my test get https 199 59 148 20 output connect er
  • Eclipse/MySQL 集成插件? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我的顺风滚动 snap x 无法工作,您能找到解决方案吗?

    所以我使用 Tailwind CSS 但遇到了问题 所以我正在学习如何在顺风 CSS 上进行滚动捕捉 滚动对齐 y 有效 但滚动对齐 x 不起作用 我尝试了一切让我的代码滚动 snap x 但它不起作用 你们中的任何人都可以修复我的顺风代码
  • 霍夫变换 C# 代码 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 让我们看一下这个 C 实现 https github com andrewkirillov AForge NET blob a9453
  • iOS 中自定义 UIStatusBar

    有没有办法自定义UIStatusBar class 有关可以使用状态栏 或围绕状态栏 执行的操作的示例 请查看此 Github 项目 https github com myell0w MTStatusBarOverlay https git
  • 枚举构造函数(创建成员的成员)

    在 D 中 我试图创建一个成员有成员的枚举 我可以通过一个例子更好地解释我想要做什么 其中s and i代表我试图创建的子成员 在Python中 我可以这样做 class Foo enum Enum A A string 0 B B str