欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-20 15:37:04
...

类是面向对象编程;结构体是面向协议编程(面向对象的升级)。
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
    }
}