59572


@_functionBuilder について下記のような記述をみました。

<https://stackoverflow.com/a/56435128/1979953>

> The @_functionBuilder attribute is a part of an unofficial feature 略

や

<https://qiita.com/kentrino/items/dc6e77a0ddd21187cc55>

> ViewBuilderは非公式の機能であるFunction
> Builderを用いて実現されていて、我々もこの機能を使うことができます。実際にやってみましょう。

**unofficial feature** や **非公式の機能** といった記述があります。

これはどういった意味合いでしょうか？  
隠しメソッドみたいにリリース時には使ってはいけない（リジェクト対象）という意味合いでしょうか？それとも単に、Xcode11のBeta時点でみんな試していただけでまた正式じゃないよというぐらいの意味合いでしょうか？


CC BY-SA 4.0
2019-10-08T09:12:04.220
59567
2019-12-30T01:34:42.277
2019-12-30T01:34:42.277
13972
9008
question
swift xcode swiftui
@_functionBuilder は 非公式 (unofficial) とはどういう意味ですか？


2個目のリンク先にある「上のコードは、以下のように変換されます。」と言う記述には気がつかれたでしょうか。

SwiftUIでは、宣言的な記述を行うために、上記のような「変換」が必須となるわけですが、これを実現するためには、言語プロセッサとしてのSwiftに拡張を施す必要があります。本来、プログラミング言語としてのSwiftの進化には、[Evolution](https://forums.swift.org/c/evolution)に定められたプロセスを経て、採択される必要があります。

ところが、SwiftUIを実現するために必要な言語拡張のうち[`propertyWrapper`](https://github.com/apple/swift-
evolution/blob/master/proposals/0258-property-
wrappers.md)については、正式なEvolutionの手続きを経ているのですが、もう一つの重要な拡張である`_functionBuilder`については、そのような手続きを経ないまま、[「Appleの独自拡張」としてSwiftに取り込まれている状態](https://forums.swift.org/t/function-
builders/25167)です。

と言うわけで、この場合の unofficial や 非公式
の意味としては、「正式のプロセスを経てSwift言語の機能として取り込まれたものではない」と解するべきでしょう。

近いうちに正式なSwift言語の進化として提案される可能性はありますが、それが受け入れられた時には、Apple版の実装とは大きく異なるものになり、既存のコードは大幅な修正を要することになるかもしれない、と言ったステータスだと思われるといいでしょう。


CC BY-SA 4.0
2019-10-08T11:42:39.300
59572
2019-10-08T11:42:39.300
13972
59567
answer