rust - 在枚举中需要元组变体的独特/特殊情况是什么?

标签 rust

Rust tutorial可以用struct定义类型

enum Shape {
    Circle { center: Point, radius: f64 },
    Rectangle { top_left: Point, bottom_right: Point }
}
和非struct/Tuples类型的枚举(感谢@ÖmerErden的正确命名)
enum Shape {
    Circle(Point, f64),
    Rectangle(Point, Point)
}
据我所知,两者是相同的,在匹配中具有完全相同的用例,依此类推。但是struct one强制您使用命名属性,非struct强制您使用有序参数。
我在使用或输出(性能,内存占用等)上还缺少其他差异吗?还是后来的结构只是结构的一个懒惰语法版本,在编译后具有确切的结果?

最佳答案

我只发现了两种明显的用法:

  • 用最小的模板包装类型,因此每次需要转到包装的对象时,它都只是self.0

  • struct MyString(String);
    
  • ,当.0.1等语法更加清晰时,您不能使用命名字段(因为标识符不能以数字字符开头,尤其不能是数字字符串
  • 关于rust - 在枚举中需要元组变体的独特/特殊情况是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63437532/

    相关文章:

    multithreading - 如何告诉 Rust 让我修改隐藏在 RwLock 后面的共享变量?

    rust - 如何在 Rust 中使用返回类型为 `Fn` 的 `impl trait` 特征?

    unit-testing - 如何在 Rust 代码中比较两个 JsValues 的值?

    visual-studio-code - 在 VSCode Web 扩展中加载 wasm

    iterator - 闭包使局部变量的所有权保持比预期更长的时间

    file-io - 在 Rust 1.x 中读写文件的实际方式是什么?

    string - 从字符串创建字符切片的滑动窗口迭代器

    rust - 如何匹配 Rust 中的数据类型?

    regex - Rob Pikes 正则表达式的惯用 Rust 重写

    python - 在工作空间中编译时,dylib 无法加载 libstd