美文网首页
可失败的构造函数

可失败的构造函数

作者: 豌豆_b314 | 来源:发表于2020-04-10 16:36 被阅读0次

产生原因

1、定义类、结构体或枚举初始化时可以失败
2、失败原因,包括给初始化传入无效的形式参数值,或缺少某种外部所需的资源,又或是其他阻止初始化的情况
3、为了处理这种可能,在类、结构体或枚举中定义一个或多个可失败的构造函数。

定义可失败的构造函数

通过在 init 关键字后面添加问号init?
可失败的构造函数里面应该有一个 return nil 的语句(没有也不报错)
通过可失败的构造函数构造出来的实例是一个可选型,所以配合解包

import Foundation
//【案例】普通的构造函数
class Animal{
    var species:String
    init(species:String) {
        self.species = species
    }
}
//提问:cat1这个变量是什么类型?
var cat1 = Animal(species: "Cat")
print(cat1.species)

//【案例二】 可失败
class Animal2{
    var species:String
    init?(species:String) {
        if species.isEmpty{//此时加条件,如果传进来是空值,就构造失败。
            return nil //一旦return nil,可选型,要加?
        }
        self.species = species
    }
}
//提问:cat2这个变量是什么类型?
//构造成功的情况
var cat2 = Animal2(species: "cat")
//print(cat2.species)
if let cat2 = cat2{
    print(cat2.species)
}
//构造失败的情况
var dog = Animal2(species: "")
print(dog)

相关文章

  • 可失败的构造函数

    产生原因 1、定义类、结构体或枚举初始化时可以失败2、失败原因,包括给初始化传入无效的形式参数值,或缺少某种外部所...

  • Swift 2 学习笔记 11.结构体

    课程来自慕课网liuyubobobo老师 结构体 结构体基础 结构体之构造函数 结构体之可失败的构造函数 在结构体...

  • swift 8: 可失败构造器与可选链

    1:可失败构造器 1:简介 当使用构造器创建对象时,可以向构造器传递的形参无效或在构造器中使用函数外部的资源缺失,...

  • 结构体

    结构体的构造函数 使用Failable-Initializer可以失败的构造函数 用guard简化为---层层筛选...

  • Swift 构造器

    一个可失败构造器不能代理另一个可失败构造器。 儿子可以失败,但是不能再走父亲的老路(失败构造器)。 但是儿子可以修...

  • iOS开发 - 「Swift 学习」Swift的构造过程(五)

    类的可失败构造器 如果类、结构体或是枚举类型的对象,在构造自身的过程中有可能失败,则为其定义一个可失败的构造器 变...

  • iOS9 with Swift 类的构造器(四)

    可失败构造器(Failable initializers): 直到一个可失败构造器完成了它所有的初始化任务,它才可...

  • JS构造函数

    JS的构造函数首字母最好大写,让别人一看就知道这个是构造函数 构造函数要用new来创建对象 构造函数里面的参数名可...

  • Swift学习( 十一:构造过程2)

    1.可失败构造器 语法为在init关键字后面添加问好init? 可失败构造器的参数名和参数类型,不能与其它非可失败...

  • android中如何clone没有实现cloneable的对象?

    方法1:反射获取构造函数,然后依次反射赋值属性 缺点1:构造函数可能包含复杂的参数,不容易模拟参数,而且构造函数可...

网友评论

      本文标题:可失败的构造函数

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