// struct defaults apply inside structs too; number literals and float text struct Audio { int rate = 48000 float volume = 0.8 } struct Mixer { Audio audio []Audio extra int voices = 5 } struct Box[T] { T item Audio audio } fn make() -> Mixer { Mixer m return m } fn scale(f32 x) -> f32 { return x * 2.0 + 1 } fn main() { a := Mixer() Mixer b c := Mixer(voices: 2) list := [Mixer()] m := ["x": Mixer()] map[str]Mixer counts counts["new"].voices += 1 bx := Box[int]() print(a.audio.rate, b.audio.volume, c.audio.rate, c.voices, list[0].audio.rate, m["x"].audio.rate) print(make().audio.rate, counts["new"].audio.rate, counts["new"].voices, bx.audio.rate) print(1e3, 2.5e-3, 1E+6, 1_000.5e1, scale(1.5)) print(1.0 / 3.0, 0.1 + 0.2, 100000000.0, 1e20, 1e-7, float(7), f32(0.1)) print(str(3.14159, 2), str(2, 1), str(f32(0.1)), "x=" + str(0.25), [0.5, 1.25]) }