Swift 6の謎めいた`@isolated(any)`:知っておくべきこと
2025-09-01

Swift 6は、非同期関数の分離を記述する`@isolated(any)`属性を導入しましたが、最初は混乱を招きます。常に引数が必要です が、この引数は変更できません。この記事では、その導入理由を説明します。非同期関数のスケジューリング中に分離に関する情報が失われるという問題を解決するためです。`@isolated(any)`は関数の分離プロパティへのアクセスを提供し、よりスマートなスケジューリングを可能にします。特に`Task`と`TaskGroup`の処理において、MainActor上のタスクの実行順序を保証します。ほとんどの場合無視できますが、非同期関数の分離とスケジューリングを扱う際には、`@isolated(any)`を理解することが、効率的で信頼性の高い並行コードを作成するために不可欠です。
開発
非同期関数