Swift面向对象之枚举
发布时间:2020-12-14 02:00:39 所属栏目:百科 来源:网络整理
导读://// main.swift// Swift面向对象之枚举//// Created by Goddog on 15/7/17.// Copyright ? 2015年 Goddog. All rights reserved.//import Foundationprint("Swift不仅是面向过程还是面向对象的,Swift可以定义枚举、结构体、类3种面向对象的类型,用枚举、
// // main.swift // Swift面向对象之枚举 // // Created by Goddog on 15/7/17. // Copyright ? 2015年 Goddog. All rights reserved. // import Foundation print("Swift不仅是面向过程还是面向对象的,Swift可以定义枚举、结构体、类3种面向对象的类型,用枚举、结构体定义的变量属于值类型,用类定义的变量属于引用类型,3种面向对象都支持定义存储属性、计算属性、方法、下标、构造器和嵌套类型") print("Swift5种面向对象的程序单元:类、结构体、枚举、扩展、协议") print("定义类型的步骤:1.声明变量;2.创建实例;3.访问属性;4.调用方法;5.派生子类(枚举和结构体不支持继承)") //MARK: - 定义枚举 enum Season { case Spring case Summer case Fall case Winter } //或 enum Weekday { case Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday } //使用枚举声明变量 var day: Weekday //使用已有枚举赋值 day = Weekday.Saturday print("结果是:(day)") //MARK: - 枚举值和switch语句 var chooseDay = Weekday.Monday switch chooseDay { case .Monday: print("周一") case .Tuesday: print("周二") case .Wednesday: print("周三") case .Thursday: print("周四") case .Friday: print("周五") case .Saturday: print("周六") default: print("周日") } //MARK: - 原始值 //定义枚举,指定原始值为Int enum Weekdays: Int { case Monday,Tuesday = 1,Wednessday = 5,Sunnday } var days = Weekdays.Monday print("Monday is : (days.rawValue)") //0是根据Tuesday=1自动判断的 days = .Friday print("Friday is : (days.rawValue)") //7是根据Wednessday=5自动判断的 enum Seasons: Character { //为每个枚举指定原始值 case Spring = "s" case Summer = "u" case Fall = "f" case Winter = "w" } //根据原始值获取枚举 var getSeason = Seasons(rawValue: "s") if getSeason != nil { switch (getSeason!) { case .Spring: print("春") case .Summer: print("夏") case .Fall: print("秋") default: print("冬") } } //MARK: - 关联值 enum Planet { //不同枚举可以携带数量不等,类型不等的关联值 case Mercury(weight: Double,density: Double,name: String) case Venus(Double,Double) case Earth(Double,String) case Mars(density: Double,name:String) case Jupiter case Saturn case Uranus case Nepturn } var p1 = Planet.Mercury(weight: 0.05,density: 5.43,name: "水星") var p2 = Planet.Venus(0.815,5.25) var p3 = Planet.Earth(1.0,"地球") var p4 = Planet.Mars(density: 3.95,name: "火星") switch(p3) { case Planet.Earth(var weight,var name): print("(name),(weight)") default: break } switch (p1) { case let .Venus(weight,density): print("(weight),(density)") case let .Mercury(weight: w,density: d,name: n): print("(w),(d),(n)") default: break } Swift不仅是面向过程还是面向对象的,Swift可以定义枚举、结构体、类3种面向对象的类型,用枚举、结构体定义的变量属于值类型,用类定义的变量属于引用类型,3种面向对象都支持定义存储属性、计算属性、方法、下标、构造器和嵌套类型 Swift5种面向对象的程序单元:类、结构体、枚举、扩展、协议 定义类型的步骤:1.声明变量;2.创建实例;3.访问属性;4.调用方法;5.派生子类(枚举和结构体不支持继承) 结果是:Swift面向对象之一.Weekday.Saturday 周一 Monday is : 0 Friday is : 7 春 地球,1.0 0.05,5.43,水星 Program ended with exit code: 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |