swift:入门知识之枚举和结构体

枚举:

swift中的枚举有些类似于类这个概念,它有自己的属性,也可以有自己的方法

枚举中的成员有原始值和实际值之分,原始值用来枚举成员的排序次序,默认从0开始

枚举出来的成员值就是实际值

可以通过toRaw和fromRaw函数转换原始值和枚举值

也可以使用字符处或浮点数作为枚举的原始值

具体举例如下:

//给扑克牌内容声明一个枚举(A、2、3、4、5、6、7、8、9、10、J、Q、K)

enum Rank:Int{
   case Ace
   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.toRaw())
        }
    }
}

//创建枚举实例,获取枚举元素的原始值和实际值

let ace = Rank.Jack   //获取一个枚举元素
let originValue = ace.toRaw()            //该元素的原始值 10
let factvalue = ace.simpleDescription()  //该元素的实际值 Jack

//将一个原始值转换为实际值
if let origin = Rank.fromRaw(10){          // 10
    let fact = origin.simpleDescription()  // Jack
}

//给扑克牌的花色声明一个枚举

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 heart = Suit.Hearts   //获取一个枚举元素
let heartsDescription = heart.simpleDescription() //元素的实际值  hearts

结构体:

swift中使用struct创建结构体。结构体支持多个与类相同的行为,包括方法和构造器。

一大重要的区别时代码代码之间的传递总是用拷贝(值传递),而类则是传递引用

对于传值调用,是把实参户值传递给形参,此时形参是要被分配空间的,二呢对形参做的任何操作是不会改变实参的值的

对于传址(引用)调用,是指传递实参的地址,即形参和实参的指针指向同一块内存区域,任何一方对数据做修改,值都会改变

//声明一个扑克牌结构体,它有扑克牌内容和花色这两个枚举类型的成员变量

struct Card {

    //成员属性
    var rank:Rank
    var suit:Suit

    //成员方法
    func simpleDescription()->String{
        return "The \(rank.simpleDescription()) of \(suit.simpleDescription())"
    }
}

//创建结构体成员实例,并调用成员方法

//传入两个枚举类型的引用创建一个结构体成员变量
let threeOfShapes = Card(rank: .Three, suit: .Spades)

//结构体成员变量调用成员方法
let threeOfShapesDescription = threeOfShapes.simpleDescription()   //“The 2 of shpades”
时间: 2024-12-28 06:14:39

swift:入门知识之枚举和结构体的相关文章

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

C# 篇基础知识2——运算符、类型转换、流程控制、枚举、结构体和数组、函数

1.运算符.类型转换 计算某年y某月m某日d是周几的基姆拉尔森公式公式:int week = (d + 2*m + 3*(m + 1)/5 + y + y/4 - y/100 + y/400 + 1)%7; 除了算数运算符,C#还提供了大量数学函数,这些数学函数归为一类,称为Math 类,其常用函数如下表所示: 表 1?7 Math类中的常用函数 功能 函数 C#示例 数学表示 结果 乘方 Math.Pow() Math.Pow(2,3) 23 8 开方 Math.Sqrt() Math.Sqr

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学习笔记(11)--类与结构体

类与结构是编程人员在代码中会经常用到的代码块.在类与结构中可以像定义常量,变量和函数一样,定义相关的属性和方法以此来实现各种功能. 和其它的编程语言不太相同的是,Swift不需要单独创建接口或者实现文件来使用类或者结构.Swift中的类或者结构可以在单文件中直接定义,一旦定义完成后,就能够被直接其它代码使用. 注意:一个类的实例一般被视作一个对象,但是在Swift中,类与结构更像是一个函数方法,在后续的章节中更多地是讲述类和结构的功能性. 1.类和结构的异同 类和结构有一些相似的地方,它们都可以

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

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

枚举与结构体

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

Swift基础语法(五)枚举、结构体与类的区别

swift中的结构体值可以是整型.浮点型.字符串.字符.元祖,如果不赋值默认为整型且从0开始计数,如果为整型枚举且要求不是从0开始只需指定枚举的第一个值以后的值自动依次加1 引用方式也与oc有所出入 //枚举定义 enum 枚举名 { case 标识符1,标识符2 case 标识符3(类型列表) case 标识符4=值 } //引用 枚举名.标识符 //或者直接 .标识符 枚举多类型读取 enum Barcode { case UPCA(Int, Int, Int) case QRCode(St

swift篇第三期:类、枚举、结构体

首先我们来创建一个类吧,然后在里面声明属性与方法   class BaseUser {     var userName:String = "swh"     var password:String = "123"          //这里面有一个构造方法,其实就类似我们重写init方法一样,然后可以加些参数     //但是我们在声明该类的时候直接在类名后面接括号就可以了哦     init(username:String, password:String) {

swift 定义枚举和结构体 及使用

//定义枚举 enum MapDirection { case North case South case East case West func simpleDescription() -> String { switch self { case .North: return "North" case .South: return "South" case .East: return "East" case .West: return &