swift枚举_003_swift枚举类型

//: Playground - noun: a place where people can play

import UIKit

//------枚举---------//

//1.Swift中的枚举
//描述一个人的性别(0:男,1:女,2:不详)

//enum Sex { //枚举类型
//    case Male //枚举值
//    case Female
//    case Unknown
//
//}
//
////定义枚举变量
//var mySex : Sex = Sex.Female
//mySex = .Male
//
//var yourSex : Sex = .Unknown
//
//if yourSex == .Unknown {
//
//    print("此人似男非女")
//}
//
////2.枚举和switch的结合使用
///*
//为了保证安全性,switch和枚举类型结合使用时:
//(1)将所有枚举值列出,所以情况都要考虑
//(2)或者使用default来表示默认情况
//*/
//switch mySex {
//case Sex.Male:
//    print("男生")
//case Sex.Female:
//    print("女生")
////case Sex.Unknown:
////    print("不详")
//default:
//    print("无法识别")
//
//}

//3.枚举的原始值
//在Swift中枚举值不是默认为整型,和C,OC中不同。
enum Sex : Int {
    case Male = 0
    case Female = 1
    case Unknown = 2

}

//打印枚举值的原始值
print(Sex.Unknown.rawValue)

//枚举原始值的类型在Swift中做了扩展:String, Character, Int, Float, Double
//enum NewSex : String {
//    case Male = "Male"
//    case Female = "Female"
//    case Unknown = "Unknown"
//
//}

//原始值的隐性赋值:
//String:默认和枚举值名字相同
//Int:默认从0开始,依次递增1
enum NewSex: String{
    case Male, Female, Unknown

}

print(NewSex.Female.rawValue)

//用原始值给变量做初始化
var hisSex = Sex.Male

//枚举构造器-->返回是一个可选类型,如果传入的原始值为不合法值,则返回nil
var herSex = Sex(rawValue: 5)

//可选绑定
if let yourSex = Sex(rawValue: 10) {

    switch yourSex {

        case Sex.Male:
            print("男生")
        case Sex.Female:
            print("女生")
        case Sex.Unknown:
            print("不详")

    }
} else {
    print("没有此性别")

}

//4.枚举的关联值(相关值):存储枚举值一些额外的信息,相关值可以是不同类型的数据
//(1)基本语法
enum Color {
    case Red(alpha:Float)
    case Blue(alpha:Float, Y:Float, L:Int)

}

var myColor:Color = Color.Red(alpha: 0.5)
myColor = .Blue(alpha: 1, Y: 100, L: 100)

//if myColor == Color.Red(alpha: 0.3) {
//
//
//}

switch myColor {

case Color.Red(let alpha):
    print("red alpha = \(alpha)")

case Color.Blue(let a, let b, let c):
    print("Blue a=\(a),b=\(b),c=\(c)")

}

enum BarCode {

    case UP
}
时间: 2024-10-26 23:15:36

swift枚举_003_swift枚举类型的相关文章

Swift学习笔记-枚举(Enumerations)

本页内容包含: 枚举语法(Enumeration Syntax) 匹配枚举值与Swith语句(Matching Enumeration Values with a Switch Statement) 相关值(Associated Values) 原始值(Raw Values) 递归枚举(Recursive Enumerations) 枚举定义了一个通用类型的一组相关值,使你可以在你的代码中以一种安全的方式来使用这些值. 如果你熟悉 C 语言,你就会知道,在 C 语言中枚举将枚举名和一个整型值相对

IOS开发语言Swift入门连载---枚举

IOS开发语言Swift入门连载-枚举 枚举定义了一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值. 如果你熟悉 C 语言,你就会知道,在 C 语言中枚举指定相关名称为一组整型值.Swift 中的枚举更加灵活,不必给每一个枚举成员提供一个值.如果一个值(被认为是"原始"值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或是一个整型值或浮点值. 此外,枚举成员可以指定任何类型的相关值存储到枚举成员值中,就像其他语言中的联合体(unions)和变体(v

Swift 学习- 09 -- 枚举

// 递归枚举 // 美家居为一组相关的值定义了一个共同的类型, 使你可以在代码中以类型安全的的方式使用这些值. // 如果你熟悉C语言, 你会知道在C语言中, 枚举会为一组整型值分配相关联的名称, swift 中的枚举更加的灵活, 不必给每一个枚举成员提供一个值,如果给枚举成员提供一个值 (称为原始值), 则该值的类型可以是字符串,字符, 或者是一个整型值或浮点数, // 此外, 枚举成员可以指定任意类型的关联值存储到枚举成员中, 你可以在一个枚举中定义一组相关的枚举成员, 每一个枚举成员都可

Swift学习-枚举(Enumerations)的使用方法

Swift学习-枚举的使用方法 枚举的使用语法: enum someEnumer { // 枚举的成员值 } 以下是方向的一个例子: enum direction { case Up case Down case Left case Right } 以下摘自Swift 中文翻译组 注意: 不像 C 和 Objective-C 一样,Swift 的枚举成员在被创建时不会被赋予一个默认的整数值.在上面的CompassPoints例子中,North,South,East和West不是隐式的等于0,1,

MySQL数据类型--------枚举与集合类型实战

1. 背景 * MySQL数据库提供针对字符串存储的两种特殊数据类型:枚举类型ENUM和集合类型SET,集合类型数据类型可以给予我们更多提高性能.降低存储容量和降低程序代码理解的技巧. 2. 枚举与集合类型所属空间与最大成员数量 类型 占用字节 最大成员数量 ENUM 1 or 2, 取决于枚举成员的数量 65535 SET 1|2|3|4|8,取决于集合成员的数量 64 3. 枚举与集合约束检查应用 * 创建表 e_s mysql> CREATE TABLE e_s(     -> uid 

浮点型+字符(串)类型+时间类型+枚举与集合类型+约束条件

浮点型 分类:FLOAT DOUBLE decimal 应用场景:身高,体重,薪资 字段限制特点(5,3)前一位表示所有的位数,后一位表示小数个数 三者最大整数位和小数位对比: # 存储限制float(255,30)double(255,30)decimal(255,30)?# 精确度验证create table t9(x float(255,30));create table t10(x double(255,30));create table t11(x decimal(65,30));?i

枚举与集合类型 约束条件

枚举与集合类型 枚举(enum) 限制某个字段能够存储的数据内容 集合(set) 限制某个字段能够存储的数据内容 create table user( id int, name char(16), gender enum('male','female','others') ); insert into user values(1,'jason','xxx') # 报错 insert into user values(2,'egon','female') # 正确! create table te

Swift——(六)Swift中的值类型

在Swift中,结构体和枚举类型为值类型(Structures and Enumerations),在Stack Overflow上有这样一个问题:结构体中的可变属性只有在使用mutating关键字之后才能被内置的方法修改(如果是不可变属性肯定不可以修改了,这就不用纠结了,不过在Swift中,还有一个例外,那就是构造器Initialization,对于结构体和类的常量实例属性可以在构造器中进行设置,这感觉有点违背常量属性的含义,仔细想想也可以理解,因为实例化的时候,最后调用的是构造器,所以在构造

C#循环枚举得到枚举的注释和值

首先定义一个枚举 /// <summary> /// 枚举注释的自定义属性类 /// </summary> public class EnumDescriptionAttribute : Attribute { private string m_strDescription; public EnumDescriptionAttribute(string strPrinterName) { m_strDescription = strPrinterName; } public str