swift学习笔记(20)-枚举

当一个变量有固定的几个取值的时候,建议用枚举,比如说星期,月份等….

// 枚举类型定义的数据类型的取值,只能是 case 后面的取值
enum weekDay:String{
    case Monday
    case Tuesday
    case Wedesday
    case Thursday
    case Friday
    case Saturday = "星期六"
    case Sunday
}

var dayone = weekDay.Friday
// 如果要改变 dayone 的值,用.就可以访问
dayone = .Monday

// 如果string 类型的枚举,.case 没有设定原始值的话,默认就是 case 的名字
// 用. rawValue 访问原始值

let r = dayone.rawValue
print(r)

//如果设置了初始值,就会输出设置的初始值

dayone = .Saturday
print(dayone.rawValue)


//:## switch 语句匹配枚举值
// dayone 是接收枚举类型的值的一个变量,改变它的值,用.语法就可以了,,如果不是匹配所有的情况,要加 default
var dayTwo = weekDay.Tuesday
switch dayTwo {
case .Monday:
    print("星期一")
case .Tuesday:
    print("星期二")
default:
    print("其他")
}

新特性 相关值

enum CustTime{
    case AM(hour:Int,minute:Int)
    case PM(hour:Int,minute:Int)
    case zero
}

var mytime = CustTime.AM(hour: 8, minute: 20)
switch mytime {
case .AM(let myhour,let myminute):
    print("现在是上午\(myhour)点\(myminute)分")
case .PM(let myhour,let myminute):
    print("现在是下午\(myhour)点\(myminute)分")
case  .zero:
    print("0点")
}


// 枚举中声明一个方法,
enum CustTime1{
    case AM(hour:Int,minute:Int)
    case PM(hour:Int,minute:Int)
    case zero

    func saytime() {
        switch self {
        case .AM(let myhour,let myminute):
            print("现在是上午\(myhour)点\(myminute)分")
        case .PM(let myhour,let myminute):
            print("现在是下午\(myhour)点\(myminute)分")
        case  .zero:
            print("0点")
        }

    }
}
var mytime1 = CustTime1.AM(hour: 8, minute: 20)
var yourtime = CustTime1.PM(hour: 4, minute: 28)
// 这个时候谁调用,方法中的 self 指的就是谁
mytime1.saytime()
yourtime.saytime()



// 枚举扩展,和 oc 中的类扩展功能差不多,用 extension 关键字
extension CustTime{
    func pritTime(){
        switch self {
        case .AM(let myhour,let myminute):
            print("现在是上午\(myhour)点\(myminute)分")
        case .PM(let myhour,let myminute):
            print("现在是下午\(myhour)点\(myminute)分")
        case  .zero:
            print("0点")
        }
    }
}


mytime.pritTime()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值