Generic Instance Method 総称体インスタンスメソッド

appending(path:)

Returns a new key path created by appending the given key path to this one. 与えられたキーパスをこのものに加えることによって作成された新しいキーパスを返します。

Declaration 宣言

func appending<Root, AppendedRoot, AppendedValue>(path: KeyPath<AppendedRoot, AppendedValue>) -> KeyPath<Root, AppendedValue>? where Self == PartialKeyPath<Root>

Parameters パラメータ

path

The key path to append. 追加することになるキーパス。

Return Value 戻り値

A key path from the root of this key path to the value type of path, if path can be appended. If path can’t be appended, returns nil. このキーパスのルートからpathの値型へのキーパス、もしpathが追加できるならば。pathが追加できないならば、nilが返ります。

Discussion 解説

Use this method to extend this key path to the value type of another key path. Appending the key path passed as path is successful only if the root type for path matches this key path’s value type. This example creates a key path from Array<Int> to String, and then tries appending compatible and incompatible key paths: このメソッドを使うことで、このキーパスを別のキーパスの値型にまで広げてください。pathとして渡されるキーパスの追加は、pathのルート型がこのキーパスの持つ値型と合致する場合にのみ成功します。この例は、Array<Int>からStringへのキーパスを作成して、それから互換および非互換のキーパスをくっつけることを試みます:


let arrayDescription: PartialKeyPath<Array<Int>> = \.description


// Creates a key path from `Array<Int>` to `Int`
let arrayDescriptionLength = arrayDescription.appending(path: \String.count)


let invalidKeyPath = arrayDescription.appending(path: \Double.isZero)
// invalidKeyPath == nil

The second call to appending(path:) returns nil because the root type of the path parameter, Double, does not match the value type of arrayDescription, String. 2番目のappending(path:)への呼び出しはnilを返します、なぜならpathパラメータのルート型、Doubleは、arrayDescriptionの値型、Stringと合致しないからです。