美文网首页
Swift基本语法之类与结构体

Swift基本语法之类与结构体

作者: ryanzl | 来源:发表于2016-10-19 15:04 被阅读0次

类和结构体对比

Swift 中类和结构体有很多共同点。共同处在于:

定义属性用于存储值

定义方法用于提供功能

定义下标操作使得可以通过下标语法来访问实例所包含的值

定义构造器用于生成初始化值

通过扩展以增加默认实现的功能

实现协议以提供某种标准功能

与结构体相比,类还有如下的附加功能:

继承允许一个类继承另一个类的特征

类型转换允许在运行时检查和解释一个类实例的类型

析构器允许一个类实例释放任何其所被分配的资源

引用计数允许对一个类的多次引用

定义语法

struct Resolution {

        var width = 0

        var height = 0

}

class VideoMode {

        var resolution = Resolution()

        var interlaced = false

        var frameRate = 0.0

         var name: String?

}

结构体和枚举是值类型

在 Swift 中,所有的结构体和枚举类型都是值类型。所有的基本类型:整数(Integer)、浮点数(floating-point)、布尔值(Boolean)、字符串(string)、数组(array)和字典(dictionary),都是值类型,并且在底层都是以结构体的形式所实现。这意味着被赋值给新的常量或变量,或者被传入函数或方法中时,它们的值会被拷贝。

Objective-C 中NSString,NSArray和NSDictionary类型均以类的形式实现,而并非结构体。它们在被赋值或者被传入函数或方法时,不会发生值拷贝,而是传递现有实例的引用。

类是引用类型

与值类型不同,引用类型在被赋予到一个变量、常量或者被传递到一个函数时,其值不会被拷贝。因此,引用的是已存在的实例本身而不是其拷贝。

类和结构体的选择

按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:

该数据结构的主要目的是用来封装少量相关简单数据值。

有理由预计该数据结构的实例在被赋值或传递时,封装的数据将会被拷贝而不是被引用。

该数据结构中储存的值类型属性,也应该被拷贝,而不是被引用。

该数据结构不需要去继承另一个既有类型的属性或者行为。

以下情境中适合使用结构体:

几何形状的大小,封装一个width属性和height属性,两者均为Double类型。

一定范围内的路径,封装一个start属性和length属性,两者均为Int类型。

三维坐标系内一点,封装x,y和z属性,三者均为Double类型。

恒等运算符

等价于(===)表示两个类类型(class type)的常量或者变量引用同一个类实例。

等于(==)“等于”表示两个实例的值“相等”或“相同”,判定时要遵照设计者定义的评判标准,因此相对于“相等”来说,这是一种更加合适的叫法。

相关文章

  • Swift基本语法之类与结构体

    类和结构体对比 Swift 中类和结构体有很多共同点。共同处在于: 定义属性用于存储值定义方法用于提供功能定义下标...

  • Swift语法之类和结构体

    类和结构体是人们构建代码所用的一种通用且灵活的构造体。我们可以使用完全相同的语法规则来为类和结构体定义属性(常量、...

  • Swift最新语法总结

    swift最新语法总结(函数) swift最新语法总结(枚举类型与结构体) swift最新语法总结(类的使用) s...

  • 基本语法

    swift基本语法 五种类型 枚举(enum),结构体(struct),类(class),协议(protocol)...

  • Swift之类与结构体(笔记)

    关键字 义它们的具体内容:class 和 struct 来分别表示类和结构体struct Resolution {...

  • [Swift进阶]类与结构体的探究(上)

    本文学习和实践了Swift当中的类(Class)与结构体(Struct)。包含基本语法,异同点。类的初始化和生命周...

  • swift面向对象特性——类和结构体

    类和结构体的定义 类的语法格式为: 结构体的语法格式为: Swift中类和结构体的名称都以大写字母开头。类的方法和...

  • C语言结构体、共同体

    1、结构体 基本语法: 可使用.语法直接访问结构体中的成员。 结构体重命名: 使用typedef struct [...

  • Swift Tour Learn (六) -- Swift 语法

    Swift语法基础(五)-- (类和结构体、属性、方法) 本章将会介绍 类和结构体对比结构体和枚举是值类型类是引用...

  • Swift基础语法(二)

    swift基础语法(一)swift基础语法二主要讲数据类型 1.字符串 1.在swift中String是一个结构体...

网友评论

      本文标题:Swift基本语法之类与结构体

      本文链接:https://www.haomeiwen.com/subject/kcsxuttx.html