Pybites Logo Rust Platform

Implementing Default

Easy +2 pts

🎯 In Python, you set default values directly in __init__:

class AppSettings:
    def __init__(self, name="myapp", debug=False, timeout=30):
        self.name = name
        self.debug = debug
        self.timeout = timeout

settings = AppSettings()              # all defaults
custom = AppSettings(debug=True)      # override one, keep rest

Simple and flexible. Override what you want, keep defaults for the rest.

Rust's equivalent is the Default trait. It provides a default() method that creates an instance with default values:

let settings = AppSettings::default();

Deriving Default

When zero/empty values are fine, derive it:

#[derive(Default)]
struct Coordinate {
    x: f64,    // defaults to 0.0
    y: f64,    // defaults to 0.0
}

let origin = Coordinate::default();
assert_eq!(origin.x, 0.0);

Derived Default uses each field type's default: 0 for numbers, false for bool, "" for String, None for Option<T>. This is like …

Login to see the full exercise.