バックスラッシュ。
開発環境
> /Applications/Xcode_12_1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
Apple Swift version 5.3 (swiftlang-1200.0.29.2 clang-1200.0.30.1)
Target: x86_64-apple-darwin19.6.0
KeyPathとは
Use key-path expressions to access properties dynamically.
― Key-Path Expressions | Apple Developer Documentation
プロパティに動的にアクセスするために使う。
コード
struct A {
let name = "a-san"
let b = B() // bのname(b-san)にアクセスしたい
}
struct B {
let name = "b-san"
}
let a = A()
let path = \A.b.name
print(a[keyPath: path]) // b-san
とりあえずKeyPathを用いてプロパティにアクセスしてみた。
let a = A()
print(a.b.name) // b-san
KeyPathを使わずにアクセスするときは上記のようになる。
let a = A()
let firstPath = \A.b
let lastPath = \B.name
let path = firstPath.appending(path: lastPath)
print(a[keyPath: path]) // b-san
動的にパスを生成してアクセスしてみた。
プロパティまでのパスを変数で定義できるのが旨味に見えた。