Avatar
omochimetaru 5/10/2021 4:06 AM
上はaとbがスコープに縛られている。
4:08 AM
await withTaskGroup(of: CookingStep.self) { group in group.spawn { try await .vegetables(chopVegetables()) } group.spawn { await .meat(marinateMeat()) } group.spawn { await .oven(preheatOven(temperature: 350)) } for await finishedStep in group { switch finishedStep { case .veggies(let v): veggies = v case .meat(let m): meat = m case .oven(let o): oven = o } } }
4:08 AM
↑これの、withTaskGroup のように、async letを含む関数全体が振る舞う。