9.8 Swift类型属性

本文深入探讨Swift中的类型属性概念,包括其定义、使用场景及如何区分对象属性与类型属性。通过具体的代码示例展示了结构体与类中类型属性的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        /**

         8)类型属性:也就是这个属性它属于某一个类的而不是属于某一个对象的。

         这个属性在所有属于这个类的对象里面共用一份。


         1.也就是本身定义属性,这样的属性不隶属于某一个对象,可以认为所有的对象公用这个属性,

         2.值类型(指结构体和枚举)可以定义存储型的或者计算型的类型属性,

         而类只能定义计算型的类型属性,存储型的属性不可以做类型属性。 这个在Swift 3.0好像是可以了

         

         对象.属性

         类名称.属性

         */

        

        struct TypeProperty {

            

            // 属于某一个对象的属性,对于每一个对象都有一份

            var property: Int = 0

            

            /**

             类型属性, 也就是这个属性它属于某一个类的而不是属于某一个对象的。

             这个属性在所有属于这个类的对象里面共用一份。

             */

            static var staticProperty: Int = 0

            

            

            /**


             */

            static var staticComputProperty: Int {

                return TypeProperty.staticProperty

            }

            

            func test() -> Void {

                print("property==\(property)  staticProperty==\(TypeProperty.staticProperty)")

            }

        }

        

        var object = TypeProperty.init()

        var object1 = TypeProperty.init()

        

        object.property = 10

        object1.property = 20

        

        TypeProperty.staticProperty = 10

        

        object.test()

        

        object1.test()

        

        

        

        class MyClass {

            

            static var name: String = "zhangsan"

            var age: Int = 10

            

            static var staticComputProperty: Int {

                get {

                    return 10

                }

                set {

                    

                }

            }

        }

        

        var c1 = MyClass.init()

        var c2 = MyClass.init()

        

        c1.age = 11

        c2.age = 13

        

        MyClass.name = "lisi"

        

        print(MyClass.name)

        let dad: Int = MyClass.staticComputProperty

        print(dad)

        

        MyClass.staticComputProperty = 11


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值