iOS(swift)类和结构体的区别

类是面向对象编程;结构体是面向协议编程(面向对象的升级)。
swift推荐在app中使用结构体(struct),类(class)在swift中不处于主流地位。

结构体能实现类的全部功能,同时结构体更模块化,它默认实现初始化方法及无需考虑内存管理(自动计数引用ARC)。

一、结构体只需要给出变量的类型

struct Restaurant {
    var name:String
    var type:String
    var location:String
    var image:String
    var isVisited:Bool
}

二、类需要给出变量的初始值

class Restaurant {
    var name:String
    var type:String
    var location:String
    var image:String
    var isVisited:Bool
    
    init(name:String,type:String,location:String,image:String,isVisited:Bool) {
        self.name = name
        self.type = type
        self.location = location
        self.image = image
        self.isVisited = isVisited
    }
}

二者作用等价。

ps: 实例化时没有用到struct的全部参数,可以这么写struct
struct Restaurant {
    var name:String
    var type:String
    var location:String
    var image:String
    var isVisited:Bool

    var rating = "" //变量实例化不加这个参数
    
//需初始化“实例化”时用到的变量
init(name:String,type:String,location:String,image:String,isVisited:Bool) {
        self.name = name
        self.type = type
        self.location = location
        self.image = image
        self.isVisited = isVisited
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容