gpt4 book ai didi

swift - 在 Swift 的 Switch 外部解包枚举元组

转载 作者:IT王子 更新时间:2023-10-29 05:25:07 26 4
gpt4 key购买 nike

因此,Swift 中最酷的新特性之一是更高级的 enum 以及关联更复杂数据的可能性。例如,我可以这样做:

enum Location {
case GeoPoint(latitude: Double, longitude: Double)
case Address(address: String)
}

var address = Location.Address(address: "1234 Fake St, Fakesville TN, 41525")
var geoPoint = Location.GeoPoint(latitude: 42.342, longitude: -32.998)

// address or geoPoint
switch address {
case .Address(let addressStr):
// Unwrapped value as 'addressStr'
println("Address: \(addressStr)")
case .GeoPoint(let latitude, let longitude):
// Unwrapped values as 'latitude' and 'longitude'
println("lat: \(latitude) long: \(longitude)")
}

是否可以在 switch 语句之外解包这些内部值?像这样的东西:

var addressStr = address.0

为什么?

我没有充分的理由,我只是在试验这种语言。

最佳答案

幸运的是,您可以在 Swift 2 中使用 if case 来做到这一点:

if case .Address(let addressString) = address {
// do something with addressString
}

关于swift - 在 Swift 的 Switch 外部解包枚举元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24027267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com