美文网首页
swift 中类和结构体的区别(看这个就够了)

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

作者: 鹏飞说 | 来源:发表于2020-01-16 10:47 被阅读0次

    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 中类和结构体的区别(看这个就够了)

          本文链接:https://www.haomeiwen.com/subject/txkfzctx.html