Back

使用 Enum 和 Trait 解决经典多态问题

问题描述

长方形,三角形,圆形的面积周长计算

Enum

结果

   Compiling polymorphism v0.1.0 (D:\rustcode\polymorphism)
    Finished dev [unoptimized + debuginfo] target(s) in 0.61s
     Running `target\debug\polymorphism.exe`
[src\main.rs:27] rectangle.perimeter() = 6.0
[src\main.rs:27] rectangle.area() = 2.0
[src\main.rs:28] triangle.perimeter() = 3.0
[src\main.rs:28] triangle.area() = 0.8660254
[src\main.rs:29] cric.perimeter() = 6.2831855
[src\main.rs:29] cric.area() = 3.1415927
text

Trait

结果

   Compiling polymorphism v0.1.0 (D:\rustcode\polymorphism)
    Finished dev [unoptimized + debuginfo] target(s) in 0.58s
     Running `target\debug\polymorphism.exe`
[src\main.rs:25] rectangle.perimeter() = 6.0
[src\main.rs:25] rectangle.area() = 2.0
[src\main.rs:26] triangle.perimeter() = 3.0
[src\main.rs:26] triangle.area() = 0.8660254
[src\main.rs:27] cric.perimeter() = 6.2831855
[src\main.rs:27] cric.area() = 3.1415927
text
Rust Polymorphism Simple Example
https://www.ftls.xyz/posts/rust-polymorphism-simple-example/
Author 恐咖兵糖
Published at
Copyright CC BY-NC-SA 4.0