swift 中类和结构体的区别
首先上代码
//MARK: - 实例方法
// 类
class Student: NSObject {
var name = ""
func sayHi(name:String) {
}
func eat(food:String) {
}
}
// 结构体
struct Teacher {
var name = "lili"
var age = 18
mutating func changeName() {
name = "hanmeimei"
}
}
// 枚举
enum Color {
case red
case yellow
case green
mutating func changeColor() {
switch self {
case .red:
self = .yellow
case .yellow:
self = .green
case .green:
self = .red
}
}
}
//MARK: - 类方法
// 类
class Student1: NSObject {
static var name = "hanmenmen"
class func sayHI(name:String) {
print("hello \(name),i am \(self.name)")
}
}
// 结构体
struct Teacher1 {
static var name = "lilei"
static func changeName() {
name = "hanmeimei"
}
}
对比上方的代码做出如下解释
-
swift方法:类方法和实例方法:两者都包含类和结构体,实例方法中多了一个枚举,
-
结构体的主要区别是结构体中有个关键字mutating 可以改变结构体的内部方法
结构体改变内容时受let的影响,也就是说结构体中尽量使用var 关键字 -
类需要自己调用初始化方法
结构体不需要自己调用初始化方法 -
类方法:需要初始化对象调用 引用类型(类似于OC中的指针)
结构体:可以使用对象直接调用 值类型
类和结构体的区别:
类:面向对象的编程
结构体:面向协议的编程,比面向对象的编程能高级点,结构体可以实现类的所有方法 -
结构体只需要给你变量的类型
类需要给出变量的初始值
网友评论