美文网首页
Swift---9.类和结构体

Swift---9.类和结构体

作者: 阿丶伦 | 来源:发表于2017-02-27 18:01 被阅读8次
    • 类与结构体(Swift中,类定义后,所有相关的文件都能使用这个类,即我们不需要导入该类)
      • 定义与实例化
      class aClass {
      
      }
      struct AStructure {
      
      }
      var aStru = AStructure()
      var aClas = aClass()
      
      • 属性(与OC相同,使用.可以对类属性进行getter和setter)
      class aClass {
          var name:String?
      }
      var aClas = aClass()
      aClas.name = "class"
      if aClas.name != nil {
          print("the name of aClas is \(aClas.name!)")
      }
      
      • 便利构造器(结构体自带,而类没有)
      struct AStructure {
          var number = 0
          var grade = 0
      }
      var aStru = AStructure(number: 10, grade: 5)
      print("this stu is in grade \(aStru.grade) and his/her number is \(aStru.number)")
      
    • 类和结构体的区别
      • 类属于引用类型
        • 引用类型:Class,闭包属于引用类型,当我们使用引用类型赋值时,引用的是实例本身,而不是副本,也就是我们对新的实例操作,也会影响引用的实例
        class aClass {
            var name:String?
        }
        var aClas = aClass()
        aClas.name = "aclass"
        var bClas = aClas
        bClas.name = "bclass"
        if aClas.name != nil {
            print("the name of aClas is \(aClas.name!)")
        }
        
      • 结构体属于值类型
        • 值类型:String,Int,Float等Swift基本数据类型为值类型,当每次我们使用值类型赋值时,会生成一个拷贝副本,两者之间完全不相干
        struct AStructure {
            var number = 0
            var grade = 0
        }
        var aStru = AStructure(number: 10, grade: 5)
        var bStru = aStru
        bStru.grade = 6
        print("the a grade \(aStru.grade),the b grade \(bStru.grade)")
        

    相关文章

      网友评论

          本文标题:Swift---9.类和结构体

          本文链接:https://www.haomeiwen.com/subject/wtyzwttx.html