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.
Topics