gpt4 book ai didi

swift - 您如何在快速枚举中处理某些情况下具有默认值而其他情况下具有动态值的情况?

转载 作者:搜寻专家 更新时间:2023-11-01 05:36:27 27 4
gpt4 key购买 nike

让我们举一个文件类型枚举的例子

  enum FileType {
case Header
case Image
case Swift
init? (rawValue : String ){
switch rawValue {
case "h":
self = .Header
case "png" , "jpeg", "jpg":
self = .Image
case "swift":
self = .Swift
default:
return nil
}
}
}

上面的枚举适用于语句

let fileType = FileType(rawValue:"jpeg")
let fileType2 = FileType(rawValue:"png")

fileType 和 fileType2 都将解析为 .Image 枚举大小写。但是当我访问他们的 rawValue 时,它​​将包含“图像”。

我将如何获得首先解析为 .Image 的实际扩展名?即访问

fileType.rawValue 应生成 jpeg

fileType2.rawValue 的结果应该是 png

最佳答案

这应该能让您更好地了解如何处理这种情况:

enum FileType {
case Header
case Imge(String)
case Swift
init? (fileExt : String ){
switch fileExt {
case "h":
self = .Header
case "png" , "jpeg", "jpg":
self = .Imge(fileExt)
case "swift":
self = .Swift
default:
return nil
}
}
}

var fileType = FileType(fileExt:"jpeg")!
var fileType2 = FileType(fileExt:"png")!

switch fileType2 {
case let .Imge(exten):
print("\(exten)", terminator:"")
default:
print("Error")
}

关于swift - 您如何在快速枚举中处理某些情况下具有默认值而其他情况下具有动态值的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275632/

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