В D я пытаюсь создать перечисление, у членов которого есть члены. Я могу лучше объяснить, что я пытаюсь сделать, на примере, где s
и 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, какая хорошая альтернатива?