定义一个枚举
//定义一个Int类型的枚举
enum NewType1:Int{
case normal=1,special,images
}
//定义一个枚举类型
enum Demotype{
case tianxia,doudou,wangshi,maitian
}
//定义一个字符串类型的枚举
enum StringType:String{
case tianxia="tianxia",doudou="dddddd",tianddid="ttttt"
}
//定义一个INt类型的枚举
enum HTTPStatusCode:Int{
case ok=200
case notFount=404
case forbidden=403
}
//获取枚举类型的rawValue值
let code=HTTPStatusCode.ok.rawValue
//获取枚举类型rawValue对应的case值
let statusCode=HTTPStatusCode(rawValue: 200)
let statusCode1=HTTPStatusCode(rawValue: 500)
//获取枚举类型rawValue对应的case值
let strstatus=StringType(rawValue: "tianxia")
//获取枚举类型的rawValue值
let strstar=StringType.tianxia.rawValue
var codeDemo=Demotype.tianxia
//这里系统默认已经知道在Demotype这个枚举下,多以.doudou 系统会认为在Demotype下
codeDemo = .doudou
switch codeDemo {
case .tianxia:
print("ddd")
case .doudou:
print("ddd")
case .wangshi:
print("wnagshi")
default:
print("cannont be here")
}
特殊类型enum类似oc的宏定义方法
/**Associated Values
* 1.每条keys的类型可以不一样 2.每条keys可以创建多个value出来
*/
enum Barcode{
case upc(Int,Int,Int,Int)
case qrCode(String)
}
var product=Barcode.upc(3, 3, 2, 1)
var produc=Barcode.upc(4, 4, 1, 3)
product=Barcode.qrCode("ABDSFSDFSD")
//判断produc类型,相关类型进行输出
switch product {
case
let .upc(number1, number2, number3, number4):
print("upc:\(number1),\(number2),\(number3),\(number4))")
case let .qrCode(productCode):
print("QR code:\(product)")
}
//如果product的类型是Barcode.qrCode就输出这个product
if case let Barcode.qrCode(producted)=product{
print("QR code:\(product)")
}
在enum里定义函数
enum HTTPStatusCode:Int{
case ok = 200
case notFound = 404
case forbidden = 403
//enum 可以定义一个函数,当做case使用
func is4XX() -> Bool{
//self.rawValue 相当于当前传进来的case值
if 400 <= self.rawValue && self.rawValue < 500{
return true
}
return false
}
}
var code:HTTPStatusCode=HTTPStatusCode.notFound
code = .ok
//这里就是把code的.notFound传进is4XX函数里
code.is4XX() //false
定义一个
enum HTTPStatusCode:Int{
case ok = 200
case notFound = 404
case forbidden = 403
//定义一个属性,返回一个可读的字符串
var message:String{
get{
switch self {
case .ok:
return "OK"
case .notFound:
return "NOTFOUNd"
case .forbidden:
return "Forbidden"
}
}
}
}
var code:HTTPStatusCode=HTTPStatusCode.notFound
code = .notFound
//使用
code.message //"NOTFOUNd"
网友评论