我正在寻找可以模仿Object或struct的数据结构。真的,只是一些传递不同类型变量的紧凑方式。目前我正在使用一个元组,但引用元组的各个部分并不像我想的那么令人愉快。目前我刚刚创建了代表元组中各个位置的别名:
alias AuxClass = tuple[str,str,list[int],list[int],Dec];
int ACLS = 0;
但是我不得不重组这个元组,因此不得不改变索引。我可以在这里使用一些我错过的东西,或者将来会出现一个特色吗?
谢谢!
答案 0 :(得分:2)
请查看代数数据类型功能:
您可以创建一个构造函数来表示您尝试在上面定义的数据类型,类似于您对结构执行的操作,并为构造函数中的每个元素指定一个字段名称:
data AuxClass = auxClass(str f1, str f2, list[int] f3, list[int] f4, Dec f5)
然后,您可以使用构造函数名称并提供数据来创建此实例:
a = auxClass("Hello", "World", [1,2,3], [4,5,6], D1)
(其中D1
是Dec
)。
获得实例后,您可以使用字段名称访问信息:
a.f1 // which equals "Hello"
a.f3 // which equals [1,2,3]
size(a.f3)
//当前等于3
您可以使用字段名称更新信息:
a.f2 = "Rascal"
a.f4 = a.f4 + 7 // f4 is now [4,5,6,7]
代数数据类型实际上非常灵活,因此除此之外你还可以做很多事情。请随意查看文档并在此处提出问题。