Generic Function

withVaList(_:_:)

Invokes the given closure with a C va_list argument derived from the given array of arguments. 与えられたクロージャを、その与えられた引数の配列から引き出されたC va_list引数で発動します。

Declaration 宣言

func withVaList<R>(_ args: [CVarArg], _ body: (CVaListPointer) -> R) -> R

Parameters パラメータ

args

An array of arguments to convert to a C va_list pointer. あるC va_listポインタに変換することになる、いくつかの引数からなる配列。

body

A closure with a CVaListPointer parameter that references the arguments passed as args. If body has a return value, that value is also used as the return value for the withVaList(_:) function. The pointer argument is valid only for the duration of the function’s execution. argsとして渡される引数を参照するCVaListPointerパラメータを持つクロージャ。bodyが戻り値を持つならば、その値はまたwithVaList(_:)関数の戻り値としても使われます。ポインタ引数は、関数の実行の継続期間に対してだけ有効です。

Return Value 戻り値

The return value, if any, of the body closure parameter. bodyクロージャパラメータの戻り値、もしあれば。

Discussion 解説

The pointer passed as an argument to body is valid only during the execution of withVaList(_:_:). Do not store or return the pointer for later use. 引数としてbodyに渡されるポインタは、withVaList(_:_:)の実行の間のみ有効です。後で使うためにポインタを格納したり返したりしないでください。

If you need to pass an optional pointer as a CVarArg argument, use the Int(bitPattern:) initializer to interpret the optional pointer as an Int value, which has the same C variadic calling conventions as a pointer on all supported platforms. あなたがオプショナル値をCVarArg引数として渡す必要があるならば、Int(bitPattern:)イニシャライザを使って、オプショナルポインタをInt値として解釈してください、それは全てのサポートされるプラットホーム上のポインタと同じC可変長引数呼出規約を持ちます。

See Also 参照

C Variadic Functions C可変長引数関数