Swift面向对象基础(上)——Swift中的枚举
Swift中枚举
学习笔记来自《极客学院》
import Foundation /**********1*Swift定义枚举的语法格式*************/
/*
enum 枚举名 {
使用case关键字列出所有枚举值
枚举的其他成员
}
*/
//定义枚举
enum Season{
case Spring
case Summer
case Fall
case Winter
}
//使用一个case列举所有的值
enum Season2{
case Spring,Summer,Fall,Winter
}
//使用枚举声明变量
var weather : Season//这里就是声明一个Season 类型的变量weather
weather = .Summer//或者是:weather = Season.Summer
println("1:\(weather)") var enum_1 = Season.Winter//直接用类型推断也可以
switch(enum_1){
case .Spring:
println(Season.Spring)
case .Summer:
println(Season.Summer)
default:
println("在家里")
}//switch中的case没有覆盖枚举的所有值,必须添加default语句,也就是说如果列出了枚举所有的值,就可以删掉default语句了 /**********2*原始值*************/
/*
enum 枚举值 : 原始值类型{
case 枚举值 = 原始值
}
*/
enum Weekday : Int{
case Mon,Tur,Wen = ,Thur,Fri,Sat,Sun
}//因为这里都是整形所以会自动推断他们分别是1~7
println(Weekday.Wen)//不知道结果为甚是这样的:(Enum Value) //所以获取枚举的 原始值
println(Weekday.Mon.rawValue)
println(Weekday.Tur.hashValue) enum Season3 : Character{
case Spring = "春"
case Summer = "夏"
case Fall = "秋"
case Winter = "冬"
}//但是上面类型的推断仅仅局限在整型的情况下,swift会自动推断 //根据原始值来获取枚举值,调用的事构造器,这个构造器是可选类型:init?(rawValue:)
var mySeason = Season3(rawValue: "秋")
if mySeason != nil{
switch(mySeason!){//需要间接解包
case .Spring:
println("春天不是读书天")
case .Summer:
println("夏天炎炎正好呢")
case .Fall,.Winter: //这里表示“或”
println("秋多蚊蝇冬日冷")
default:
println("读书只好等明年")
}
} /**********3*关联值*************/
//在每个枚举值后面添加括号扩起来的关联值,然后关联值个数是0~多个,然后定义类型值,当然也可以仅仅只有类型,不需要关联值名称
enum Planet {
case Earth(weight: Double,name: String)
case Mars(density: Double,name:String,weight:Double)
case Venus(Double,String)
case Saturn
case Neptune
}//其实这后面括号扩起来的就是元祖
//获取枚举值,系统还会自动提示,这个操作一下就能明白了
var p1 = Planet.Earth(weight: , name: "hah")
//接下来就是得到这些关联值,要得到这些关联值,就要声明额外的变量
//但是下面直接用的是switch语句
switch(p1){
case Planet.Earth(var weight,var name):
println("\(name)~~~~~~~~~\(weight)")
case let Planet.Mars(density:d,name:n,weight:dou):
println("\(d)")
default:
break
}
Swift面向对象基础(上)——Swift中的枚举的更多相关文章
- Swift面向对象基础(上)——Swift中的类和结构体(上)
学习来自<极客学院> import Foundation //1.定义类和结构体 /* [修饰符]calss 类名{ 零到多个构造器 零到多个属性 零到多个方法 零到多个下标 } 修饰符可 ...
- Swift面向对象基础(上)——Swift中的类和结构体(下)
学习来自<极客学院> import Foundation class User { var name:String var age:Int init(name:String,age:Int ...
- Swift面向对象基础(中)——Swift中的方法
学习来自<极客学院> 1.定义方法需要在类型(枚举,结构体,类)里定义,不能独立定义,独立定义的是函数 2.方法要么属于该类型本身,要么是该类型的一个实例 3.不能独立执行方法,执行方法必 ...
- Swift面向对象基础(中)——Swift中的存储属性和计算属性
学习来自<极客学院> 1.存储属性:存储在类.结构体里的变量或者常量 2.分为:实例存储属性.类型存储属性 3.所有的存储属性必须显示的指定初始值,在定义时或者构造器当中指定 4.可选类型 ...
- swift 学习(三)(面向对象基础)
面向对象的基本特征包括:封装,继承,多态 在swift中,类,结构,枚举都具有面向对象特性 但结构和枚举的实例不称为对象,因为结构和枚举不是彻底的面向对象类型,比如他们不能继承. 结构体 struct ...
- ios开发中的Swift面向对象
iOS在现代计算机语言中,面向对象是非常重要的特性,Swift语言也提供了面向对象的支持.而且在Swift语言中,不仅类具有面向对象特性,结构体和枚举也都具有面向对象特性. 1.Swift中的类和结构 ...
- Swift基础之OC文件调用Swift代码(在上次的基础上写的)
前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift. 首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父 ...
- Swift 面向对象解析(一)
面向对象总体概括: Swift 不仅能够面向过程编程,也能够面向对象编程(OOP).面向对象其实就是“以对象为核心”,把我们的客观世界想着是由一个个对象组成的,面向对象编程则为对象提供了属性和方法,属 ...
- iOS - Swift 面向对象语法
1.面向对象 面向过程:面向过程编成将所要解决的问题按解决问题的步骤进行分析.如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块.每一个解决的步骤可能是一行或者几行代码,也可能是一 ...
随机推荐
- 基于openssl的单向和双向认证
1.前言 最近工作涉及到https,需要修改nginx的openssl模块,引入keyless方案.关于keyless可以参考CloudFlare的官方博客: https://blog.cloudfl ...
- python反转字符串(简单方法)及简单的文件操作示例
Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
- 【C#】OOP之继承那点事
前言: 继承这点事,说多不多,说少不少,这里只描述了一些我认为的基础篇,望各位大神指教.本节参照了C#高级编程和Think in java对继承的描述,我个人认为OOP只是思想,故看明白一个就说通的, ...
- C#一个方法返回多个值
示例代码: static void Main(string[] args) { //声明 int value; string strOutValue; //调用函数 //函数的参数有两个返回的值 Re ...
- 自定义动画方法animate
animate的使用方法:animate(params,speed,callback); 例子:animate({ right: "-=600px",height:"+= ...
- ASP.Net中无刷新执行Session身份验证
在写一个客户的B/S结构应用程序时,突然发现一个技巧,不知道是否是MS的一个BUG,给相关的有研究的朋友原先考虑写一个检查Session的类,Session失效后,必须转向登陆页面,可每一个调用该类的 ...
- MVC5+EF6 入门完整教程12--灵活控制Action权限
大家久等了. 本篇专题主要讲述MVC中的权限方案. 权限控制是每个系统都必须解决的问题,也是园子里讨论最多的专题之一. 前面的系列文章中我们用到了 SysUser, SysRole, SysUserR ...
- C#的timer类
在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Timers.Timer类里 S ...
- vs2012中怎样设为起始页,怎样取消
把你要设为起始页的文件右键选择为起始页,如下:
- Ajax,谷歌提示AutoCompleteExtender控件
提示内容从数据库中读取: ------------------------------------------页面 <asp:ScriptManager ID="ScriptManag ...