swift 再识枚举变量

// Use enum to create an enumeration. Like classes and all other named types, enumerations can have methods associated with them.

// swift 中enum 变化比较大,枚举看起来和类差不多,因为它可以拥有自己的方法了, enum的创建如下

enum Rank: Int {
    case Ace = 1
    case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten
    case Jack, Queen, King
    func simpleDescription() -> String {
        switch self
        {
        case .Ace:
            return "ace"
        case .Jack:
            return "jack"
        case .Queen:
            return "queen"
        case .King:
            return "king"
        default:
            return String(self.rawValue)
        }
    }
}

// 上面的例子中可以看到,枚舉創建時指定的類型是Int型,可以指定rawValue的初始值,默認從0開始,swift中的枚舉值還可以是浮點值和字符串。

In the example above, the raw-value type of the enumeration is Int, so you only have to specify the first raw value. The rest of the raw values are assigned in order. You can also use strings or floating-point numbers as the raw type of an enumeration. Use the rawValue property to access the raw value of an enumeration member.

可以看到,swift 的语言灵活度很大,使用Rank(rawValue: <#Int#>) 获取的是一个optional ,需要先解包才能使用。enum的使用比較簡單,同過例子和官方的文檔很容易掌握。本人學習ios時間比較短,博客中寫的不對的地方還請大家多多執政。

时间: 2024-10-30 06:50:15

swift 再识枚举变量的相关文章

swift版的枚举变量

swift的枚举类型跟普通的类是极为类似的,使用的时候,请不要以为他是一个常量,以下是测试用源码 // // ViewController.swift // SwiftEnum // // Created by YouXianMing on 15/10/9. // Copyright © 2015年 ZiPeiYi. All rights reserved. // import UIKit enum Planet: Int { case Mercury = 1, Venus, Earth, Ma

再识数据库

      好长时间没有总结数据库了,温习一下 数据库到底是用来干嘛的?带着这个问题来进行我们的探讨 一.简介 数据库是从文件管理系统发展而来的,是对数据的管理的高级阶段.我们都知道它是用来存储数据的,可 以说是电子的文件柜,能对数据进行增删改查操作,但是它不仅仅是用来存储数据的,随着数据库技术的发 展,海量数据库和大型数据库系统已经广泛的应用. 二.三层 这三层是物理数据层.概念数据层和用户数据层,想想和现在学习的三层还是很像的 1.物理数据层:存储最原始的数据 可参考数据访问层(D) 2.逻

Swift再浪一波,快来快来

自己理解老师所说的! var myset: Set<Int> = [1,2,3,3];//set集合是无序集合 var arr = [1,2,3];//Array有序集合 var dic = [1:"a",2:"b"];//字典是无序集合 for item in arr { //1.得到Array的长度 print(item) } for (index,value) in arr.enumerate() { //2.得到Array的长度 print(&q

Play再识 - 不放弃的执着

从写Play初识时,前面各种称赞play如何如何解放java web开发,最后因为网络被墙而无法正常编译,从而想到放弃.从来都有成为web开发高手的想法,今天又再一次进行尝试,惊喜的是有新的进展. 首先,你得FQ,得打破国内网络的桎梏,推荐使用mxvpn,免费得话使用日本线路,但是用的人特别多,导致网络特别慢,建议购买一个月的套餐试试,我反正是买了,效果不错. 其次,你最好把activator的完整包下载下来.这个完整包是包含一个本地的play开发的网站ide,输入activator ui即可,

JS魔法堂:再识Number type

Brief 本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生,于是只好恶补一下.以下是恶补后的成果: 基础野:细说原码.反码和补码(http://www.cnblogs.com/fsjohnhuang/p/5060242.html) 基础野:细说无符号整数(http://www.cnblogs.com/fsjohnhuang/p/5078290.html) 基础野:细说有符号整数(http://www.cnbl

软工视频再识

前一段时间已经对视频刚开始的一段做了一个总结,最近一直忙着自考视频进度有点慢,现在才做总结.每一章只有总结才能有收获要不然感觉跟没有看差不多,总结让我把知识串成一串珍珠. 第四.五章讲的面向过程的设计方法,从工程管理的角度分为概要设计和详细设计,概要设计是在总体设计的基础上对系统总体结构的细化,将系统分为很多的子系统和模块,就好像我们要爬上一样,一看这么高的上,就感觉很恐惧,但我们可以把它分成若干段,然后就是再分为每一小节,这样当到达山顶的时候就会特别有成就感.我们设计系统先进行概要设计分为多个

JS魔法堂:再识IE的内存泄露

一.前言 IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了.这阵子趁项目技术调研的机会好好的再认识一回,以下内容若有纰漏请大家指正,谢谢! 目录一大坨! 二.内存泄漏到底是哪里漏了? 2.1. JS Engine Object.DOM Element 和 BOM Element 2.2. JS Engine Object的内存回收机制 2.3. DOM Element的内存回收机制 2.4. 两种泄漏方式 三.4种泄漏模式  3.1. Circular Refe

VB.net学习笔记(二十三)再识委托

一.调用静态方法 1.声明 委托须使用前声明定义,可以带参数(一个或多个),可以有返回值. '位于一个模块或类的声明部分 Delegate Sub OneArgSub{ByVal msg As String) '带一个参数,且无返回类型 定义了一个委托的类.后台创建了一个名为OneArgSub的新类,这个类是从System.Delegate类继承而来的.(更准确地说从 Systetn.MuhicastDelegate 继承而来的,而 System.MulticastDelegate 则又是从 S

C#再识委托

C# 1 1.什么是委托 委托是一种定义方法签名的类型.当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法.(MSDN) 委托类似于 C++函数指针,但它们是类型安全的 委托允许将方法作为参数进行传递 委托可用于定义回调方法 委托可以链接在一起 方法不必与委托签名完全匹配.(协变与逆变) C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法. C#3.0引入了Lambda表达式,利用它们可以更简练地编写内联代码块.匿