Skip to content

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.

Global index

Find your way through Zolo

Try an idea

Start here

9 results

9 results

enespt-br