Swift中的计算属性是什么
admin
2023-02-10 14:20:05
0

一、计算属性的概念

        计算属性本身不存储数据,而是从其它存储属性中计算得到数据,与存储属性不同,类、结构体、和枚举都可以定义计算属性

        计算属性提供了一个getter来获取值,以及一个可选的setter来间接设置其它属性或变量的值,计算属性的语法如下:

        面向对象类型 类型名{

                存储属性...

                var 计算属性名:属性数据类型{

                    get {

                        return 计算后属性值

}

                set 新属性值{

                    

}

}

        示例:

class Employee {
            var no:Int = 0
            var firstName:String = ""
            var lastName:String = ""
            var job:String?
            var salary:Double = 0
            lazy var dept:Department = Department()
            var fullname:String{
                get{
                return firstName+"."+"lastName"
}
                set(newFullName)系统默认给的变量名为newvalue{
                    var name = newFullName.componentsSeperatedByString(".")
                    firstName = name[0]
                    lastName = name[1]
}
}
}

二、只读计算属性

            计算属性可以只有getter访问器,没有setter访问器,这就是只读计算属性

            示例:

class Employee {
            var no:Int = 0
            var firstName:String = ""
            var lastName:String = ""
            var job:String?
            var salary:Double = 0
            lazy var dept:Department = Department()
            var fullname:String{
                get{
                return firstName+"."+"lastName"
}
               
}
}

三、结构体和枚举中的计算属性

        示例

    struct Department {
            let no:Int = 0
            var name : String = "sales"
            
            var fullName:String {
                return "swift" + name + ".D"
}
}
        var dept = Department()
        println(dept.fullName)
         enum WeekDays:String {
                case Monday = "Mon"
                case Tuesday = "Tue"
                case Wednesday = "Wed"
                case Thursday = "Thu"
                case Friday = "Fri"
                var message:String {
                    return "Today is"+self.rawValue
}
}
var day = WeekDays.Monday
println(day.message)

上一篇:Swift属性观察者

下一篇:Swift存储属性

相关内容

热门资讯

今日重大发现“西南九九.可以开... 网上科普关于“西南九九有没有挂”话题很是火热,小编也是针对西南九九作*弊开挂的方法以及开挂对应的知识...
【今日要闻】“,728土豪版.... 家人们!今天小编来为大家解答,728土豪版透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪...
最新引进“皇豪互娱牛牛.可以开... 家人们!今天小编来为大家解答皇豪互娱牛牛透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
今日重大发现“星禾卡五星.真的... 您好:星禾卡五星这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
以赛促产聚动能 智绘蓝海新蓝图 为加快建设引领型现代海洋城市,推动海洋人工智能技术成果从“赛场”迈向“市场”,聚力打造海洋人工智能大...
终于懂了“边锋老友麻将.辅助开... 家人们!今天小编来为大家解答边锋老友麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
重磅消息“中州游戏.是不是有挂... 您好:中州游戏这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
今日重大消息“手机麻将.辅助器... 网上科普关于“手机麻将有没有挂”话题很是火热,小编也是针对手机麻将作*弊开挂的方法以及开挂对应的知识...
今日重磅消息“快乐打筒子.怎么... 家人们!今天小编来为大家解答快乐打筒子透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买...
终于懂了“飞鹰互娱炸金花.开挂... 终于懂了“飞鹰互娱炸金花.开挂器?”详细开挂教程您好,飞鹰互娱炸金花这个游戏其实有挂的,确实是有挂的...