Every time you create a struct instance β€” like AnimeCharacter(name: "Naruto", powerLevel: 9000) β€” you're calling an initializer. Swift generates one for you automatically, but sometimes you need more control over how your struct is set up. That's where custom initializers come in. πŸ₯

The Default Memberwise Initializer

When you create a struct with properties, Swift automatically generates what's called a memberwise initializer β€” a special function that accepts each property as a parameter, in the order they're defined:

struct Ninja {

let name: String