Swift面向对象-枚举

Swift面向对象-枚举,第1张

概述//// main.swift// Swift面向对象-枚举//// Created by Goddog on 15/5/30.// Copyright (c) 2015年 Goddog. All rights reserved.///*1.Swift的枚举不像C那样简单,也不像Java的枚举(其实Java的枚举是一种特殊的类);2.Swift的枚举是完全重新定义的一个类
////  main.swift//  Swift面向对象-枚举////  Created by Goddog on 15/5/30.//  copyright (c) 2015年 Goddog. All rights reserved.///*1.Swift的枚举不像C那样简单,也不像Java的枚举(其实Java的枚举是一种特殊的类);2.Swift的枚举是完全重新定义的一个类型,管理一组有限值的集合;3.Swift的枚举具有面向对象的特征,支持计算属性、支持实例方法和类方法、支持定义构造器来完成初始化;4.Swift可通过扩展来增强原有枚举的功能,允许通过指定协议来提供标准的功能。*/import Foundation/***   使用多个个case列出多个实例*/enum Season{    case Spring    case Summer    case Fall    case Winter}/***   使用一个case列出多个实例(我喜欢这种写法)*/enum Weekday{    case Monday,Tuesday,Wednessday,Thursday,FrIDay,Saturday,Sunday}//使用枚举声明变量var sn : Seasonvar wd : Weekday//已有的枚举实例赋值sn = Season.Summerwd = .Saturday      //还可以这样省略哦//枚举值和Switch一起使用switch(wd){    case .Monday:        println("周一,上班")    case .Tuesday:        println("周二")    case .Wednessday:        println("周三")    case .Thursday:        println("周四")    case .FrIDay:        println("周五")    case .Saturday:        println("周六")    case .Sunday:        println("周日")    }switch(wd){    case .Monday:        println("上班咯")    case .Tuesday,.Wednessday,.Thursday:   //hi,还可以这样子写,java可没这种写法哦        println("周二、周三、周四")    default:        println("周五呢还是放假咯")}/**   原始值1.枚举要么所有的都指定原始值、要么完全不指定原始值;2.原始值可以自动判断,也可以显示指定;*///定义枚举,并制定该枚举原始值的类型为Intenum Numbers : Int{    //用case列出六个枚举实例    case one,two = 2,four = 4,five,six,seven      //系统自动判断    //这个地方程序会自动推断one=1,five=5,seven=7 特别神奇}//如果非Int类型,比如事String、Characterenum Human : Character{    case Man = "M"      //Human都是显示指定    case Woman = "W"}var num = Numbers.five//获取枚举的原始值println("five的原始值是\(num.rawValue)")//根据原始值获取枚举值var myHuman = Human(rawValue: "W")if myHuman != nil{    switch(myHuman!)  //注意:使用!进行强制解析    {        case .Man:            println("男人")        case .Woman:            println("女人")    }}/**    关联值1.关联值可以称为“属性值”或"成员值",各个实例的内部状态:比如上面的男人有哪些特质(胡子,.....)*///定义枚举enum Planet{    //不同的枚举可以携带数量不等、类型不等的关联值    case Mercury(weight:Double,density:Double,name:String)  //还指定了名称哦    case Earth(Double,String)    case Saturn}var mercury = Planet.Mercury(weight: 0.05,density: 5.43,name: "水星")var venus = Planet.Earth(1.0,"地球")var saturn = Planet.Saturn//如果程序要访问枚举的关联值,那就需要声明额外的变量和常量,并将枚举值的关联值绑定到这些变量和常量。switch(venus){    case Planet.Earth(var weight,var name):        println("该行星的名字为:\(name),质量是\(weight)")    default:        break}//如果打算将某个枚举值的所有关联值都提取为变量和常量,也可以将一个var或let放置在枚举成员之前即可switch(mercury){    //将Planet.Earth的关联值绑定到weight、density常量    case let .Earth(weight,density):        println("该行星的质量相当于:\(weight)个地球,密度为\(density)")    //将Planet.Mercury的关联值绑定到w、d、n常量    case let .Mercury(weight:w,density:d,name:n):        println("该行星的质量\(w),密度\(d),名字\(n)")    default:        break}println("Hello,World!")
总结

以上是内存溢出为你收集整理的Swift面向对象-枚举全部内容,希望文章能够帮你解决Swift面向对象-枚举所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1087536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存