swift 中类和结构体的区别(看这个就够了)

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中的指针)
    结构体:可以使用对象直接调用 值类型
    类和结构体的区别:
    类:面向对象的编程
    结构体:面向协议的编程,比面向对象的编程能高级点,结构体可以实现类的所有方法

  • 结构体只需要给你变量的类型
    类需要给出变量的初始值

只是代表本人的理解,如有错误,欢迎留言批评,本人自当尽力改正

你可能感兴趣的:(swift 中类和结构体的区别(看这个就够了))