質問: @_functionBuilder について下記のような記述をみました。 > > The @_functionBuilder attribute is a part of an unofficial feature 略 > > > や > > ViewBuilderは非公式の機能であるFunction Builderを用いて実現されていて、我々もこの機能を使うことができます。実際にやってみましょう。 > > > **unofficial feature**や**非公式の機能**といった記述があります。 これはどういった意味合いでしょうか? 隠しメソッドみたいにリリース時には使ってはいけない(リジェクト対象)という意味合いでしょうか?それとも単に、Xcode11のBeta時点でみんな試していただけでまた正式じゃないよというぐらいの意味合いでしょうか?
回答: 2個目のリンク先にある「上のコードは、以下のように変換されます。」と言う記述には気がつかれたでしょうか。 SwiftUIでは、宣言的な記述を行うために、上記のような「変換」が必須となるわけですが、これを実現するためには、言語プロセッサとしてのSwiftに拡張を施す必要があります。本来、プログラミング言語としてのSwiftの進化には、Evolutionに定められたプロセスを経て、採択される必要があります。 ところが、SwiftUIを実現するために必要な言語拡張のうち`propertyWrapper`については、正式なEvolutionの手続きを経ているのですが、もう一つの重要な拡張である`_functionBuilder`については、そのような手続きを経ないまま、「Appleの独自拡張」としてSwiftに取り込まれている状態です。 と言うわけで、この場合の unofficial や 非公式 の意味としては、「正式のプロセスを経てSwift言語の機能として取り込まれたものではない」と解するべきでしょう。 近いうちに正式なSwift言語の進化として提案される可能性はありますが、それが受け入れられた時には、Apple版の実装とは大きく異なるものになり、既存のコードは大幅な修正を要することになるかもしれない、と言ったステータスだと思われるといいでしょう。