Swift面向对象-枚举
来源:互联网 发布:流星网络电视2.68.2 编辑:程序博客网 时间:2024/06/11 11:48
//// 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!")
0 0
- Swift面向对象-枚举
- Swift面向对象之枚举
- swift入门第三季(枚举,类,面向对象, 协议)
- 面向对象--枚举
- swift面向对象详解
- Swift:面向对象(属性)
- swift 面向对象
- Swift 之面向对象
- Swift面向对象
- ios-Swift面向对象
- 面向对象(三)—枚举
- 面向对象之枚举类
- Swift学习笔记|Swift面向对象
- Swift OOP面向对象浅析
- Swift学习笔记-面向对象
- swift面向对象之属性
- swift面向对象之方法
- swift 新特性 -面向对象
- unity3d优化总结篇
- 自定义View的封装(代码方式)
- 设置UILabel背景和文字的透明度(代码和SB两种实现)
- 自定义view封装-用Button显示商品图片和名称
- 第43讲--项目三--成绩统计
- Swift面向对象-枚举
- 读浅墨博客 十五 笔记
- Java经典题目:银行业务调度系统
- 设计模式学习之策略模式:容错恢复机制
- 层次聚类法 hierarchical clustering approach
- Linux下memcache的安装和启动(转)
- 明源售楼系统技术解析(三)付款定义新增、修改、删除
- 1042 数字0-9的数量
- Keil v4函数列表显示