初始化后是否可以向结构添加新字段? structfoo{ 酒吧:i32, } 设foo_var=foo{bar:16}; //我想做这样的事情 foo_var.new_字段:u8=“new field.”to_string(); //这样我就可以打电话了 普林顿!(“{}”,foo_var.new_字段); //哪个会打印“新字段”

初始化后是否可以向结构添加新字段? structfoo{ 酒吧:i32, } 设foo_var=foo{bar:16}; //我想做这样的事情 foo_var.new_字段:u8=“new field.”to_string(); //这样我就可以打电话了 普林顿!(“{}”,foo_var.new_字段); //哪个会打印“新字段”,struct,rust,field,add,Struct,Rust,Field,Add,我知道我可以: 将它实现为一个函数,但我希望有一个一致的“样式”,因此我希望避免在foo\u var.new\u field()中使用括号 作为默认值实现它,但是如果我可以在另一个脚本中实现它(就像您可以使用impl for functions那样),而不总是向结构和默认值添加字段,那就太酷了 不,这是不可能的,因为Rust在编译时静态解析结构字段。为了实现这一点,您需要在代码中编写该逻辑,例如将字段编码为HashMap@E_net4iscleaningup TBF的键,它是静态类型的,但这

我知道我可以:

  • 将它实现为一个函数,但我希望有一个一致的“样式”,因此我希望避免在
    foo\u var.new\u field()
    中使用括号

  • 作为默认值实现它,但是如果我可以在另一个脚本中实现它(就像您可以使用impl for functions那样),而不总是向结构和默认值添加字段,那就太酷了


  • 不,这是不可能的,因为Rust在编译时静态解析结构字段。为了实现这一点,您需要在代码中编写该逻辑,例如将字段编码为
    HashMap
    @E_net4iscleaningup TBF的键,它是静态类型的,但这并不是不可能的,您可以在具有结构类型系统的语言中使用类似的内容(虽然我认为不可能在适当的位置添加字段,但您应该创建一个具有不同类型和附加字段的新记录)。