Start learning free

LESSON 169 OF 414 · PROJECTS: EVERYDAY PROGRAMS

Shopping Cart V5 - Coupon Codes in Rust

Practice

Use a map as a fast lookup table for coupon discounts.

You start with:

    let subtotal = 100;
    let coupon = "SAVE20";
    let coupons = HashMap::from([("SAVE10", 10), ("SAVE20", 20), ("SAVE50", 50)]);

Build:

Total: $80

Rules:

  • Look up coupon in coupons. If it is there, its value is the discount; if it is not (an unknown code), the discount is 0.
  • total = subtotal - discount.
  • Build the text "Total: $<total>" (e.g. "Total: $80"; an unknown coupon would give "Total: $100").
  • Store it in result, then print it with println!("{}", result).

Use coupons.get(coupon).copied().unwrap_or(0): get gives an Option, and unwrap_or(0) supplies the default.

Use format!("Total: ${}", total) to build each line from a number.

    let subtotal = 100;
    let coupon = "SAVE20";
    let coupons = HashMap::from([("SAVE10", 10), ("SAVE20", 20), ("SAVE50", 50)]);

    let discount = coupons.get(coupon).copied().unwrap_or(0);
    let total = subtotal - discount;
    let result = format!("Total: ${}", total);
    println!("{}", result);

STEP 1 OF 4
    Ctrl + Enter to check

    Shopping Cart V5 in Rust

    Keep going with RustAbout 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free