枚举和结构

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

import UIKit

//使用 enum
来创建枚举。如同类和其他命名类型,枚举也可以有方法

enum Rank:
Int {

case Ace =
1

case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten

case Jack, Queen, King

func simpleDecription() ->
String {

switch
self {

case .Ace:

return
"ace"

case .Jack:

return
"jack"

case .Queen:

return
"queen"

case .King:

return
"king"

default:

return
String(self.rawValue)

}

}

}

let ace =
Rank.Ace

let aceRawValue =
ace.rawValue

//在如上例子中,原始值的类型是 Int
所以可以只指定第一个原始值。其后的原始值都是按照顺序赋值的。也可以使用
字符串或浮点数作为枚举的原始值。

//if let convertedRank = Rank.Eight {

//    let threeDescription = convertedRank.simpleDecription()

//}

//枚举的成员值就是实际值,而不是其他方式写的原始值。实际上,有些情况是原始值,就是你不提供的时候。

enum Suit {

case Spades, Hearts, Diamonds, Clubs

func simpleDescription() ->
String {

switch
self {

case .Spades:

return
"spades"

case .Hearts:

return
"hearts"

case .Diamonds:

return
"diamonds"

case .Clubs:

return
"clubs"

}

}

}

let hearts =
Suit.Hearts

let heartsDescription =
hearts.simpleDescription()

//使用 struct
创建结构体。结构体支持多个与类相同的行为,包括方法和构造器。一大重要的区别是代码之间的传递
总是用拷贝(值传递),而类则是传递引用。

struct Card {

var rank:
Rank

var suit:
Suit

func simpleDescription() ->
String {

return
"The \(rank.simpleDecription())
of \(suit.simpleDescription())"

}

}

let threeOfSpades =
Card(rank: .Three, suit: .Spades)

let threeOfSpadesDescription =
threeOfSpades.simpleDescription()

//一个枚举的实例成员可以拥有实例的值。相同枚举成员实例可以有不同的值。你在创建实例时赋值。指定值和原始值的
区别:枚举的原始值与其实例相同,你在定义枚举时提供原始值。

enum ServerResponse {

case Result(String, String)

case Error(String)

}

let success =
ServerResponse.Result("6:00 am",
"8:09 pm")

let failure =
ServerResponse.Error("Out of chinese")

switch
failure {

case
let .Result(sunrise, sunset):

let serverResponse =
"Sunrise is at \(sunrise) and sunset is at
\(sunset)"

case
let .Error(error):

let serverResponse =
"Failure ... \(error)"

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 14:48:58

枚举和结构的相关文章

苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类

一. 枚举 枚举定义了一种包含一组相关值的公共类型.枚举是Swift中的一种与类类似的类型,具有许多传统类才有的特征,例如计算属性.实例方法,能够通过扩展或协议增强功能等. 1.1 枚举定义 Swift 语言的枚举类型的定义语法如下: enum CompassPoint { case North case South case East case West } 枚举语法以一个关键字enum来标识,enum后面包含一个枚举类型名字,枚举定义全部放到一对大括号中. 在枚举中定义的值称为枚举成员值,用

【C】枚举,以及枚举和结构体的不同

枚举实际意义跟汉语意义没有多少相似的地方,而且容易让人想起穷举. 学完枚举基本就把几个基本的数据类型学完了哈 穷举……呸,枚举和结构体的结构类似 struct stuent { int age; float height; }; enum{ FIR, SCD, THD }; 但不同很多,如下 1,定义结构体是定义一个数据类型,之后,声明的是结构体变量,结构体变量本身只能被赋值于另一个结构体变量,而且两个结构变量必须是同一种结构,但结构变量之内的变量是可以被赋值的.而且结构体变量声明所用的标示符并

Swift学习——A Swift Tour 枚举和结构体

Enumerations and Structures Enumerations   枚举的使用 使用 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 { ca

Swift中文教程(六)--枚举和结构

原文:Swift中文教程(六)--枚举和结构 Enumerations 枚举 使用 enum 来创建一个枚举.跟Classes(类)和其他类型的命名方式一样,枚举也可以有Method(方法). 1 enum Rank: Int { 2 case Ace = 1 3 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten 4 case Jack, Queen, King 5 func simpleDescription() -> Stri

Swift 枚举和结构

枚举 使用enum创建枚举--注意 Swift 的枚举可以关联方法: 1 enum Rank: Int { 2 case Ace = 1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten 3 case Jack, Queen, King 4 func simpleDescription () -> String { 5 switch self { 6 case .Ace: 7 return "ace" case .

C# 之 枚举与结构

枚举类型 如果一个变量只有几种可能的取值,可以使用枚举类型来定义.枚举类型属于用户自定义数据类型.所谓"枚举"是指将变量所有可能的取值一一列举出来,变量的取值只限于列举出来的常量. 1.枚举值在运行时是常量,可以作为case的条件等待. 2.枚举值可以指定对应的整数数据类型. 3.所有的枚举都隐式继承自System.Enum抽象类 4.枚举值赋值的时候需要避免循环引用的情况. 5.枚举值可以转换成整数. 枚举类型的声明     enum 枚举类型名 {枚举常量1,枚举常量2,...枚举

拆箱,装箱,枚举,结构

枚举: 1.不能定义自己的方法 2.它们不能实现接口 3.不能定义属性和索引器 4.枚举成员之间用“,”隔开 5.枚举成员如果没有赋值,那么它的第一个值默认为0 6.后面的成员取值是前一个成员取值+17.枚举成员只能赋值为整型 类与结构:1.类和结构都是创建对象的模版2.结构是值类型,类是引用类型,结构不能有析构函数3.类可以有析构函数结构不能声明默认构造函数(没有参数的构造函数)4.结构可以声明构造函数,但他们必须带参数,并且需要把所有字段都要赋值 5.在结构中初始化实例字段是错误的,在类中是

枚举、结构、类

C++中,枚举类型.结构类型.类类型是三种用户自定义的符合数据类型. 5.1 简单数据类型与构造式数据类型 简单数据类型,又基本数据类型.原子数据类型:该类型的数据是单一的一个值,不可再细分为若干部分.包括int, float, char等: 构造式数据类型:数据内部有多个组成部分,可以分别访问这些组成部分.包括枚举.结构.类. 5.2 枚举类型 若想建立一种数据类型,其值域由程序员自定义,可以使用enum定义: enum <枚举类型名> {<枚举元素表>}; 如: enum Da

常量_枚举_结构

namespace 常量_枚举_结构{ //将枚举声明到命名空间的下面,类的上面. //美剧就是一个变量类型,只是他声明,赋值,使用的方式与那些普通的不一样 //定义了一个枚举 public enum Gender { 男, 女 } public enum QQState { 在线, 离线, 隐身, 忙碌 } class Program { static void Main(string[] args) { //const 类型 赋值 //const int num = 20;// 常量不能够重

枚举与结构体

枚举与结构体 枚举 enum 枚举的作用是用来增加代码的可读性,限制变量的使用范围.枚举有以下特点: 一个完整的枚举包括关键字enum.变量名.{}以及枚举值,例如: enum Fruits{    Apple,    Orange,} 枚举变量的声明要使用变量名,枚举值的调用也要使用变量名,使用如下: Fruits apple = Fruits.Apple; 枚举字面值属于整型,默认是int类型,可以通过在变量名后指定某一值类型,枚举可选的整型包括:byte.sbyte.short.ushor