Guide 23 of 53
Generic type defaults
Choose defaults after explicit arguments and constructor inference.
Structs, enums and type aliases may give trailing generic parameters a default:
struct Page<T = str> { items: [T], total: int }
let names: Page = .{items: ["Ada"], total: 1}
let scores = Page {items: [95], total: 1}An explicit type argument wins. A constructor first infers its arguments from its fields; defaults fill only arguments still missing. A default may refer to an earlier parameter, as in Pair<T, U = T>. Required parameters cannot follow defaults; a default cannot refer to itself or a later parameter.
DOCS / FEEDBACK
Did this page leave a question?
Tell us where the explanation lost you. Documentation is part of the language experience.