Object-C--->Swift之(八)枚举

声明枚举

Swift使用enum定义枚举,语法格式为

enum 枚举名
{
//使用case关键字列出所有枚举值
//枚举的其他成员
}

Swift即允许每个枚举值单独用一个case关键字,也允许使用一个case定义多个枚举值,多个枚举值之间以英文逗号隔开。枚举名从程序可读性方面来看,swift枚举名必须是有一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分割符。

    enum Weekday
{
case Monday
case Tuesday
case Wednesday
case Thursday
case Friday
case Staturday
case Sunday
}

调用枚举

    var day:Weekday
   day=Weekday.Sunday

当程序可以推断变量的枚举类型时,Swift允许省略枚举值前面的枚举名前缀。

day=.Sunday

枚举值和switch语句

 var chooseDay=Weekday.Sunday
switch(chooseDay)
 {
case .Monday,Tuesday,Wednesday,Thursdayv,Friday:
print("工作日")
 case .Staturdayv,Sunday
print("周末")
}

原始值

可以通过原始值为每一个枚举实例指定一个简单类型(如Int、Double、Float)
语法格式如下:

enum 枚举名:原始值类型
{
case 枚举值=原始值
}

注意Swift并不要求对每个枚举值指定原始值,Swift可以根据已经指定的原始值的枚举来推断它前后所有枚举的枚举值。

enum Weekday:Int
{
case Monday,Tuesday=1,Wednesday,Thursday,Friday,Saturday,Sunday
}

由Tuesday等于1可以推断出Monday等于0,Wedding等于2,以后的等于3、4…
但是字符串不能进行推断,需要给每个枚举都指定原始值。

enum Season:Character
{
case Spring="S"
case Summer="U"
case Fall="F"
case Winter="W"
}

枚举可使用如下构造器和属性

  • init?(rawValue:)可能失败的构造器。因此该* 构造器返回的是包含枚举值的可选类型
  • rawValue:属性(使用枚举实例调用)。获取指定枚举值的原始值。
    var day=Weekday.Staturday
    print(".Saturday的原始值为:\(day.rawValue)")//输出8
    var mySeason=Season(rawValue:"S")
    if mySeason !=nil
    {
     print(mySeason!)
    print("春天")
    }
    

    注意:可能是一个失败的构造器,所以需要加以判断,否则会造成崩溃。
    关联值
    定义一个枚举时,可以为枚举添加丰富的枚举属性,这和C、Object-C相比,极大的丰富了枚举的作用。

    enum Season
    {
    case Monday(Work:String)
    case Tuesday(Work:String)
    case Wednesday(Work:String)
    case Thursday(Work:String)
    case Friday(Work:String)
    case Staturday(Work:String)
    case Sunday(Work:String)
    }
    var mySeason1=Season.Monday(Work:"工作呀")
    var mySeason2=Season.Sunday(Work:"相亲呀")
    

    访问枚举值的关联值,需要声明额外的变量或常量,并将枚举值的关联值绑定到这些变量或常量。

    Season.Monday(Work:String)=mySeason1
    print("\(Work)")
    
时间: 2024-12-10 12:22:44

Object-C--->Swift之(八)枚举的相关文章

Swift编程之枚举类型详解_Swift

想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在Swift语言中的枚举可谓是让人眼前一亮.在Swift中的枚举不仅保留了大部分编程语言中枚举的特性,同时还添加了一些好用而且实用的新特性,在本篇文章中将领略一些Swift中枚举类型的魅力. 有小伙伴会问,不就是枚举么,有什么好说的.在Swift中的枚举怎不然,Swift中的枚举的功能要强大的多,不仅

深入解析Swift编程中枚举类型的相关使用_Swift

枚举是由用户定义的数据类型的一组相关值.关键字 enum 用来定义枚举数据类型. 枚举功能枚举在 swift 也类似于 C 和 Objective C 中结构类型 它是在一个类中声明,其值是通过该类的实例来访问 初始成员值是用枚举初始化定义的 其功能也扩展确保标准的协议功能 语法枚举引入 enum 关键字和一对大括号内将它们定义: 复制代码 代码如下: enum enumname {    // enumeration values are described here } 例如,可以为星期定义

详解Swift中enum枚举类型的用法_Swift

一.引言 在Objective-C语言中,没有实际上是整型数据,Swift中的枚举则更加灵活,开发者可以不为其分配值类型把枚举作为独立的类型来使用,也可以为其分配值,可以是字符,字符串,整型或者浮点型数据. 二.枚举语法 Swift中enum关键字来进行枚举的创建,使用case来创建每一个枚举值,示例如下: //创建姓氏枚举,和Objective-C不同,Swift枚举不会默认分配值 enum Surname { case 张 case 王 case 李 case 赵 } //创建一个枚举类型的

Swift面向对象基础(上)——Swift中的枚举

Swift中枚举 学习笔记来自<极客学院> 1 import Foundation 2 3 /**********1*Swift定义枚举的语法格式*************/ 4 /* 5 enum 枚举名 { 6 使用case关键字列出所有枚举值 7 枚举的其他成员 8 } 9 */ 10 //定义枚举 11 enum Season{ 12 case Spring 13 case Summer 14 case Fall 15 case Winter 16 } 17 //使用一个case列举所

Swift教程之枚举类型详解_Swift

枚举定义了一个常用的具有相关性的一组数据,并在你的代码中以一个安全的方式使用它们. 如果你熟悉C语言,你就会知道,C语言中的枚举指定相关名称为一组整数值.在Swift中枚举更为灵活,不必为枚举的每个成员提供一个值.如果一个值(被称为"原始"的值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或者任何整数或浮点类型的值. 另外,枚举成员可以指定任何类型,每个成员都可以存储的不同的相关值,就像其他语言中使用集合或变体.你还可以定义一组通用的相关成员为一个枚举,每一种都有不同的一组

Object-C---&amp;gt;Swift之(八)类和结构体

在Swift中类和结构体有高度的相似性.二者主要区别是: 1. 结构体不支持继承 2. 结构体不支持定义析构器 3. 结构体是值类型,而类是引用类型 定义类语法格式: [修饰符]class 类名 { 零个到多个构造器 零个到多个属性 零个到多个方法 零个到多个下标 } 对一个类定义而言,包括3种最常见的成员:构造器.属性.方法,如果程序员没有为一个类提供构造器,则系统会为该类提供一个默认.无参数的构造器.一旦程序员为该类提供了构造器,则系统不会再为该类提供默认的构造器. #定义结构体语法格式:

swift枚举

原文出自:标哥的技术博客 前言 枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值,当然还有一个很重要的是它可能智能提示. 在C语言中,枚举会为一组整型值分配相关联的名称.Swift中的枚举更加灵活,不必给每一个枚举成员提供一个值.如果给枚举成员提供一个值(原始值),则该值的类型可以是字符串.字符.整型值或浮点数. 此外,枚举成员可以指定任意类型的关联值存储到枚举成员中,每一个枚举成员都可以有适当类型的关联值. 在Swift中,枚举类型是一等(first-c

Swift语法专题九——枚举

Swift讲解专题九--枚举 一.引言         在Objective-C语言中,没有实际上是整型数据,Swift中的枚举则更加灵活,开发者可以不为其分配值类型把枚举作为独立的类型来使用,也可以为其分配值,可以是字符,字符串,整型或者浮点型数据. 二.枚举语法         Swift中enum关键字来进行枚举的创建,使用case来创建每一个枚举值,示例如下: //创建姓氏枚举,和Objective-C不同,Swift枚举不会默认分配值 enum Surname { case 张 cas

《从零开始学Swift》学习笔记(Day 24)——枚举

原创文章,欢迎转载.转载请注明:关东升的博客 Swift中的枚举可以定义一组常量.提高程序的可读性:还具有面向对象特性.使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下:enum 枚举名{      枚举的定义}"枚举名"是该枚举类型的名称.它首先应该是有效的标识符,其次应该遵守面向对象的命名规范,它由一组成员值和一组相关值组成. 成员值枚举的成员值默认情况下不是整数类型,以下代码是声明枚举示例: enum WeekDays { case Monday ca