User Tools

Site Tools


rust

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
rust [2024/07/11 20:41] – [Enums] utedassrust [2024/07/11 20:46] (current) – [Matching] utedass
Line 231: Line 231:
 ==== Matching ==== ==== Matching ====
 <code rust> <code rust>
 +enum UsState {
 +    Alabama,
 +    Alaska,
 +    // --snip--
 +}
 +
 enum Coin { enum Coin {
     Penny,     Penny,
     Nickel,     Nickel,
     Dime,     Dime,
-    Quarter,+    Quarter(UsState),
 } }
  
 fn value_in_cents(coin: Coin) -> u8 { fn value_in_cents(coin: Coin) -> u8 {
     match coin {     match coin {
-        Coin::Penny => +        Coin::Penny => 1,
-            println!("Lucky penny!"); +
-            1 +
-        }+
         Coin::Nickel => 5,         Coin::Nickel => 5,
         Coin::Dime => 10,         Coin::Dime => 10,
-        Coin::Quarter => 25,+        Coin::Quarter(state) => 
 +            println!("State quarter from {:?}!"state); 
 +            25 
 +        }
     }     }
 } }
 +</code>
 +
 +Can match integers as well
 +<code rust>
 +    let dice_roll = 9;
 +    match dice_roll {
 +        3 => add_fancy_hat(),
 +        7 => remove_fancy_hat(),
 +        other => move_player(other),
 +    }
 +
 +    fn add_fancy_hat() {}
 +    fn remove_fancy_hat() {}
 +    fn move_player(num_spaces: u8) {}
 </code> </code>
rust.1720730465.txt.gz · Last modified: 2024/07/11 20:41 by utedass

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki