Swift系列:类

  • 类的定义和结构体类似,但编译器并没有为类自动生成可以传入成员值的初始化器
//这里可以看到,类是没有自动初始化器的
        class Point {
            var x: Int = 0
            var y: Int = 0
        }
        var p1 = Point(x: 1)//报错
        var p2 = Point(y: 2)//报错
        var p3 = Point()
        var p4 = Point(x: 1, y: 2)//报错
  • 再看一种情况,class中的成员没有默认值,下边这种情况也会发生报错
        class Point {//报错 Class 'Point' has no initializers
            var x: Int
            var y: Int
        }
        var p = Point()//报错 'Point' cannot be constructed because it has no accessible initializers
  • 再看一种情况,class中的所有成员都有一个对应的默认值,编译器会为class生成无参的初始化器

        class Point {
            var x: Int = 0
            var y: Int = 0
        }
        var p = Point()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。