Swift:如何将枚举值转换为字符串?
在 Swift 中,您可以通过 `rawValue` 属性将枚举值转换为字符串。前提是该枚举具有字符串类型的原始值。如果枚举没有原始值,则可以使用 `String(describing:)` 初始化器来获取枚举值的字符串表示形式。此外,您还可以使用 `CustomStringConvertible` 协议。
示例 1
使用 `rawValue` 属性将枚举值转换为字符串。在本例中,`Fruit` 是一个具有字符串类型原始值的枚举。`rawValue` 属性用于获取 `myFruit` 枚举值的字符串表示形式,即“Apple”。
import Foundation
enum Fruit: String {
case apple = "Apple"
case banana = "Banana"
case orange = "Orange"
}
let myFruit = Fruit.apple
let fruitString = myFruit.rawValue
print("Enum value: \(fruitString)")
输出
Enum value: Apple
示例 2
如果枚举没有原始值,则可以使用 `String(describing:)` 初始化器来获取枚举值的字符串表示形式。在本例中,`Direction` 是一个没有原始值的枚举。`String(describing:)` 初始化器用于获取 `myDirection` 枚举值的字符串表示形式,即“north”。
import Foundation
enum Direction {
case north
case south
case east
case west
}
let myDirection = Direction.north
let directionString = String(describing: myDirection)
print("Enum value: \(directionString)")
输出
Enum value: north
示例 3
自定义枚举的字符串表示形式。在本例中,我们有一个名为 `Suit` 的枚举,它实现了 `CustomStringConvertible` 协议。我们提供了 `description` 属性的自定义实现,该属性返回每种花色的相应符号。当我们创建一个 `Suit` 实例并打印它时,将使用自定义字符串表示形式。
import Foundation
enum Suit: CustomStringConvertible {
case spades, hearts, diamonds, clubs
var description: String {
switch self {
case .spades:
return "♠︎"
case .hearts:
return "♥︎"
case .diamonds:
return "♦︎"
case .clubs:
return "♣︎"
}
}
}
let suit = Suit.hearts
print(suit)
输出
♥︎
结论
总之,在 Swift 中有多种方法可以将枚举值转换为字符串:
如果枚举具有字符串类型的原始值,则可以使用 `rawValue` 属性来检索枚举值的字符串表示形式。
您可以实现 `CustomStringConvertible` 协议并提供您自己的 `description` 属性或方法的实现。如果您希望自定义枚举项的字符串表示形式,则可以使用此方法。
如果枚举没有原始值并且您不想提供特定的字符串表示形式,则可以使用 `String(describing:)` 初始化器来获取枚举值的默认字符串表示形式。
根据您特定用例的需求,选择最符合您需求的策略。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP