Last updated
Last updated
Generic parameters have the same syntax for classes/struct/interfaces and functions.
The overall syntax is
Neither classes/functions/etc... are type-checked if they contain generics
note: fn hello<>() {...}
counts as a generic function
The where clause
is used as a way to make sure the correct generic has been passed. For example, let's imagine you are making a vector class that only what's T
to be a Sized
type. (all types implement Sized except those whose size is not known at compile time, for example, void
)
Here, snowball checks if the given generics implements
the given types.
You can declare where
clauses separately to either check for other types or better reading: