【发布时间】:2017-11-07 13:40:17
【问题描述】:
我想创建一个函数(用于库),它将为任何包含所有列及其数据的 CSV 输出一个结构。这意味着直到运行时才会知道列名(除非用户明确提供)。
是否可以在运行时创建结构定义或改变现有结构?如果有,怎么做?
例如,我如何改变以下结构:
struct Point {
x: String,
y: String,
}
到以下(仅在内存中):
struct Point {
x: String,
y: String,
z: String,
}
这种行为在 Python 等语言中是可能的,但我不确定在 Rust 等编译语言中是否可能。
【问题讨论】:
-
你想要一个 HashMap:doc.rust-lang.org/std/collections/struct.HashMap.html
-
我可以发誓以前有人问过这个问题,但我找不到。不过,您可能会发现 How does Rust implement reflection 和 Using reflection to enumerate through the fields of a struct at runtime 很有趣。
-
我还找到了Is it possible to generate and execute Rust code at runtime?,这也不是同一个问题。