• swift类和结构体004-类和结构体基本使用


    //: Playground - noun: a place where people can play
    
    import UIKit
    
    //----类和结构体------//
    
    //1.结构体的定义
    struct Size {
        
        //结构体中的属性,给定默认值
        var width = 375
        var height = 667
        
        //Swift的结构体中可以定义方法,与C、OC不同
        func show() {
            
            print("((width):(height))")
        }
        
    }
    
    var size = Size() //结构体的构造方法来构建一个结构体实例
    print(size.width)
    print(size.height)
    
    size.show()
    
    //2.类的定义
    class Person {
        
        //类中定义的属性必须进行初始化
        var name:String = ""
        var age:Int = 0
        let sex:Int = 0
        
        //类中方法的定义
        func speak() {
            print("say hello name:(name),age:(age),sex:(sex)")
            
        }
        
    }
    
    //创建实例
    let kathy = Person()
    kathy.speak()
    
    kathy.name = "Kathy"
    kathy.age = 10
    //kathy.sex = 1
    kathy.speak()
    
    //3.类中的属性可以是一个结构体变量
    class View {
        
        var opacity = 1.0
        var name = ""
        
        
        var viewSize = Size()
        
        
    }
    var myView = View()
    
    //Swift允许设置类中结构体属性的子属性
    myView.viewSize.width = 480
    
    
    //4.结构体和类的区别
    
    //(1)结构体有对应的逐一构造器
    var size2 = Size( 320, height: 240)
    
    size2.show()
    
    //而类中没有相应的构造器
    var myView2 = View()
    
    //(2)结构体和枚举都是值类型,而类是引用类型
    var size3 = size2
    size2.width = 480
    size2.show()
    size3.show()
    
    var mark = Person()
    mark = kathy
    
    //mark.speak()
    //kathy.speak()
    kathy.age = 30
    kathy.speak()
    mark.speak()
    
    //类的实例的内存管理仍然使用ARC
    
    //5.===运算符:用来判断变量或者常量是否引用同一个实例,仅用于引用类型
    //!==运算符
    if mark  === kathy {
        
        print("引用同一个实例")
    }
    
    //===和==,==两个实例的值是否相等,===表示是否引用同一个实例
    时光见证了成长,还很无知,我想一点点幼稚转为有知!
  • 相关阅读:
    CSAcademy Or Problem
    BZOJ 4516 [Sdoi2016] 生成魔咒
    SPOJ7258 SUBLEX
    SPOJ1812 LCS2
    SPOJ1811 LCS
    SPOJ8222 NSUBSTR
    洛谷3804 【模板】后缀自动机
    SPOJ287 NETADMIN
    SPOJ1693 COCONUTS
    BZOJ5329 SDOI2018 战略游戏
  • 原文地址:https://www.cnblogs.com/foreveriOS/p/5566259.html
Copyright © 2020-2023  润新知