代码之家  ›  专栏  ›  技术社区  ›  Fomalhaut

如何将结构存储到rust中的变量中?

  •  1
  • Fomalhaut  · 技术社区  · 6 年前

    Rust允许在函数内部声明一个结构,但它不允许用简单的方式为其分配一个变量。

    fn f1() -> (something) {
        struct mystruct {
            x: i32,
        }
    
        let s = mystruct;
    
        s
    }
    
    fn f2(s: something) {
        let obj = s { x: 5 };
        println!(obj.x);
    }
    
    fn main() {
        let s = f1();
        f2(s);
    }
    

    是否可以以不同的方式将结构存储到变量中?如何正确地编写结构类型?在我的项目中,我想声明一个函数内的结构,并在另一个函数内创建实例。

    1 回复  |  直到 6 年前
        1
  •  5
  •   Matthieu M.    6 年前

    如何将结构存储到rust中的变量中?

    锈是一种 静态地 打字语言 不可能 存储一个 类型 转换为变量,然后使用此变量构造该类型的实例。

    这就是为什么你不能表达 s 是的,在语言中根本没有词汇。


    根据您的意愿,您可能希望调查:

    • 泛型: fn f2<T: Default>() 将允许创建任何类型的实例 T 实施 Default 特质。
    • 运行时多态性:工厂函数 FnOnce(i32) -> Box<Trait> 无法生成任何类型的实例实现 Trait 从A i32 .