本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考
以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。
在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。
本文地址:http://www.jb51.cc/article/p-badkhfnt-d.html
Reference:原版:The Swift Programming Language
中文版:Swift 3 编程语言 - 类和结构体
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)
具体的时候后面会有 “初始化” 章节(此处应有链接……)
特征运算符特征运算符这里仅限于类的使用:
==
和!=
:表示对比两个类的内容
是否等价
===
和!==
:表示对比两个类是不是同一个引用(同一个实例)
与 Objective-C 不同,在 Swift 中,这三个类型是使用结构体
来实现的。不过 Swift 会在程序效率上自行优化,不用太在意。
以上是内存溢出为你收集整理的Swift 个人学习笔记 - 08: 类和结构体全部内容,希望文章能够帮你解决Swift 个人学习笔记 - 08: 类和结构体所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)