Swift 个人学习笔记 - 08: 类和结构体

Swift 个人学习笔记 - 08: 类和结构体,第1张

概述本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:https://segmentfault.com/a/119000000864992

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考

以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。

在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。

本文地址:http://www.jb51.cc/article/p-badkhfnt-d.html

Reference:

原版:The Swift Programming Language
中文版:Swift 3 编程语言 - 类和结构体

Swift - 类和结构体的区别
Swift中的结构体与类的区别(有坑存在)

Swift 中类与结构体的对比 共通点:

都可以定义属性值

都可以定义成员方法

都可以定义下标脚本

都可以定义初始化器

都可以应用 extension

都可以应用 protocol

不同点:

类可以继承

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

类有反初始化方法

类是引用类型,使用引用计数技术,传递时是引用传递。而结构体是值类型,传递的时候是值传递

定义和初始化
struct SomeStructure {        ...    }        class SomeClass {        ...    }

Swift 中,对一些定义的约定规则是:

类型:大写开头的驼峰命名法(Upper Camel Case)

方法:小写开头的驼峰命名法(Lower Camel Case)

属性:小写开头的驼峰命名法(Lower Camel Case)

在定义类 / 结构体时,可以加入值的初始化,如:

struct Resolution {        var wIDth = 0        var height = 0     }        class VIDeoMode {        var resolution = Resolution()        var interlaced = false        var frameRate = 0.0        var name: String?    }

注意上面的 String? 类型,系统自动会赋 nil 值。

创建实例的时候,可以使用 “初始化方法” 来创建一个类或结构体的实例。此外,也可以在开始的时候直接指定属性的值,但这个方式不能用于初始化类。

let someResolution = Resolution()    let someVIDeoMode = VIDeoMode()    let vga = Resolution(wIDth: 640,height: 480)

具体的时候后面会有 “初始化” 章节(此处应有链接……)

特征运算符

特征运算符这里仅限于类的使用:

== != :表示对比两个类的内容是否等价

===!==:表示对比两个类是不是同一个引用(同一个实例)

String,Array,Dictionary

与 Objective-C 不同,在 Swift 中,这三个类型是使用结构体来实现的。不过 Swift 会在程序效率上自行优化,不用太在意。

总结

以上是内存溢出为你收集整理的Swift 个人学习笔记 - 08: 类和结构体全部内容,希望文章能够帮你解决Swift 个人学习笔记 - 08: 类和结构体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存