Swift

Swift 4.1 - SE-0188 Make Standar

2020-12-09  本文已影响0人  ienos

索引类型支持 Hashable


Key-Path 下标需要支持 Hashable,为了提升实用性,将标准库中的所有索引类型添加 Hashable conformance

Key-Path Usage

struct Person {
  var age: Int
  var name: String
}
let jerry = Person.init(age: 12, name: "jerry")

let name = \Person.name

print(jerry[keyPath: name])
/// Jerry

标准库中的索引类型

Simple Index Types 简单索引类型

Wrapping Index Types 包装索引类型

遵循 Hashable 之后的 Int 和 String.Index 在 Key Path 中的使用

let numbers = [10, 20, 30, 40, 50]
let firstValue = \[Int].[0]
print(numbers[keyPath: firstValue]) // 10

let string = "Hellooo!"
let firstCharacter = \String.[string.startIndex]
上一篇 下一篇

猜你喜欢

热点阅读