zoukankan      html  css  js  c++  java
  • Swift构造

    构造就是将结构体、类或枚举的实例准备好以便使用的过程。这个过程包括:
    (1)为实例中的每个存储属性设置初始值。
    (2)执行必要的准备和初始化工作。

    实例的构造过程是通过构造器来完成的。

    可以在结构体、类或枚举中提供自定义的构造器,从而自定义实例的构造过程。

    结构体的自定义构造器的基本用法

    /*
     构造器就是名为init的特殊方法,其语法格式为:
     init([形参列表]) {
        构造体
     }
     与普通的方法相比,构造器没有关键字func和返回类型。
     
     当通过“类型名([构造器的实参列表])”创建某个类型的实例时,系统会自动调用相应的自定义构造器,以完成实例的构造过程。
     */
    struct SomeStruct {
        var someProperty: String
        
        init(someProperty: String) {
            self.someProperty = someProperty
        }
    }
    
    let someStruct = SomeStruct(someProperty: "SP")
    someStruct.someProperty
    
    

    类的自定义构造器的基本用法

    /*
     构造器就是名为init的特殊方法,其语法格式为:
     init([形参列表]) {
        构造体
     }
     与普通的方法相比,构造器没有关键字func和返回类型。
     
     当通过“类型名([构造器的实参列表])”创建某个类型的实例时,系统会自动调用相应的自定义构造器,以完成实例的构造过程。
     */
    class SomeClass {
        var someProperty: String
        
        init(someProperty: String) {
            self.someProperty = someProperty
        }
    }
    
    let someClass = SomeClass(someProperty: "SP")
    someClass.someProperty
    
    

    枚举的自定义构造器的基本用法

    /*
     构造器就是名为init的特殊方法,其语法格式为:
     init([形参列表]) {
        构造体
     }
     与普通的方法相比,构造器没有关键字func和返回类型。
     
     当通过“类型名([构造器的实参列表])”创建某个类型的实例时,系统会自动调用相应的自定义构造器,以完成实例的构造过程。
     */
    enum SomeEnum {
        case someValue1
        case someValue2
        case someValue3
        
        init(param: String) {
            switch param {
            case "sv1":
                self = .someValue1
            case "sv2":
                self = .someValue2
            default:
                self = .someValue3
            }
        }
    }
    
    SomeEnum(param: "sv2")
    
  • 相关阅读:
    监控注册表和文件夹改动
    Windows中根据GetLastError的错误代码,取得文字描述
    VBA 读取文件/写入文件
    (转)ansi,gb2312,gbk,gb18030,unicode,utf8,unicode big endian编码的区别及什么是BOM
    VBA 打开文件对话框
    修改GitHub记录中的invalidemailaddress
    使用DWM实现Aero Glass效果
    RAII(C++必知必会 条款40)
    C函数包装ASM代码时,指针无法传值的问题
    msysgit color.ui auto is invalid msysgit无法开启彩色显示
  • 原文地址:https://www.cnblogs.com/jukaiit/p/10174414.html
Copyright © 2011-2022 走看看