How do you access enum values in Rust?

后端 未结 4 1306
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-28 12:02
struct Point {
    x: f64,
    y: f64,
}

enum Shape {
    Circle(Point, f64),
    Rectangle(Point, Point),
}

let my_shape = Shape::Circle(Point { x: 0.0, y: 0.0 },         


        
4条回答
  •  旧巷少年郎
    2020-11-28 12:29

    From The Rust Programming Language:

    Another useful feature of match arms is that they can bind to parts of the values that match the pattern. This is how we can extract values out of enum variants.

    [...]

    fn value_in_cents(coin: Coin) -> u32 {
        match coin {
            Coin::Penny => 1,
            Coin::Nickel => 5,
            Coin::Dime => 10,
            Coin::Quarter(state) => {
                println!("State quarter from {:?}!", state);
                25
            },
        }
    }
    

    If you'd like to be able to write functions that are capable of working on multiple types with different representations, have a look at traits.

提交回复
热议问题