自定义数据类型 --- 类全解(swift2.3)
来源:互联网 发布:javascript 构造函数 编辑:程序博客网 时间:2024/05/29 10:42
自定义数据类型 — 类(swift)
下面简单的介绍结构体这一自定义数据类型的应用
类的基本语法
类是引用类型
引用类型的特点
类的等价
什么时候使用类,什么时候使用结构体
一:类的基本语法
class Person { var firstName: String var lastName: String init(firstName: String, lastName: String){ self.firstName = firstName self.lastName = lastName } init?(fullName: String){ guard let index = fullName.rangeOfString(" ")?.startIndex else{ return nil } let a = fullName.substringToIndex(index)//如果这句话要放在guard保护里,必须是optional类型 let b = fullName.substringFromIndex(index) self.firstName = a self.lastName = b } func fullName() -> String { return self.firstName + self.lastName }}let person = Person(firstName: "尹", lastName: "欢一")let person1 = Person(fullName: "Steve Jobs")person.firstNameperson.lastNameperson1!.firstNameperson1!.lastNameperson1?.fullName()person.fullName()
二:类是引用类型
类的传递是通过Preference Type 传递的
三:引用类型的特点
结构体和枚举如果要调用函数自身改变自身的话,必须在函数前面写mutating关键字
struct Person { var age = 10 var day = 20 mutating func setAge(){ return self.age += 20 }}var person = Person( )person.setAge()person.ageenum Location { case on case off mutating func change() { switch self { case on: self = .off case off: self = .on } }}var door = Location.offdoor.change()door.change()
四:类的等价
//如果要判断两个类对象是否相等,那么应该使用的是“===”,三个等号//如果要判断两个类对象是否不等,那么应该使用的是“!==”,一个叹号和两个等号//如果一个类被赋值了两次,那么系统就会为第三个变量开辟一块新的存储空间,这时候第一个类和第三个类就不相等了
五:什么时候使用类,什么时候使用结构体
如果你想要封装的是一个位置,坐标,温度等,考虑使用结构体如果你想要封装的是一个人,车,动物等,考虑使用类如果一个事物需要继承其他的类或被其他的类继承,那么就使用类如果一个事物非常小,那么使用结构体,结构体是保存在栈中,而类保存在堆中
1 0
- 自定义数据类型 --- 类全解(swift2.3)
- 自定义数据类型 --- 枚举类型全解(swift2.3)
- 自定义数据类型 --- 结构体类型全解(swift2.3)
- 自定义数据类型 --- 继承和构造函数(swift2.3)
- 自定义数据类型 --- 类的属性和方法全解(swift2.3)
- Swift2.0:数据类型笔记
- Swift2.0基本数据类型汇总
- Swift2.0语法更新(3)
- iOS --- 协议部分(swift2.3)
- iOS --- 错误处理部分(swift2.3)
- # Swift2.0基本语法 常用数据类型
- swift2.0笔记3
- swift 3, swift2
- 缓存数组swift2.3
- iOS倒计时-swift2.3
- swift2
- C++数据类型:基本数据类型 构造数据类型(自定义数据类型)
- swift2.0 protocol 实战自定义UIAlertView
- CSS Position属性的学习
- Unity Shaders表面着色器
- Qt:QLineEdit显示字符的4种方式
- NYOJ-37-回文字符串
- Unity实现剧情对话
- 自定义数据类型 --- 类全解(swift2.3)
- iOS下的并行开发
- iOS 地图 MKWebView(在中国是使用高德地图)
- 对RecyclerView Item做动画
- 【Debug Assertion Failed!Expression:_pFirstBlock ==
- Unity3d 中显示 Spine 动画节点 以及设置 帧事件
- 漫谈android系统(6)硬件抽象层kernel分析
- 常用iOS-oc工具方法总结
- SQL语句各个部分的执行顺序