当前位置: 首页 > news >正文

swift-11-init、deinit、可选链、协议、元类型

一、required

二、属性观察器

三、可失败初始化器

 可以用init!定义隐式解包的可失败初始化器

可失败初始化器可以调用非可失败初始化器,非可失败初始化器调用可失败初始化器需要进行解包

如果初始化器调用一个可失败初始化器导致初始化失败 ,那么整个初始化过程都失败 ,并且之后的代码都停止执行

可以用一个非可失败初始化器重写一个可失败初始化器,但反过来是不行的

二、反初始化器(deinit

子类的deinit实现执行完毕后会调用父类的deinit

三、可选链( Optional Chaining 

上面进行强制解包可以调用,但是强制解包导致crash

 

字典的可选

 四、协议( Protocol 

二、协议中的属性

三、static、 class

四、mutating

 五、init

六、init init?、 init!

七、协议的继承

 

八、协议组合

九、CaseIterable

十、CustomStringConvertible

 十一、字典和数组初始化

十二、Any、 AnyObject

十三、is、 as?、 as!、 as

as 百分百能转的

 

十四、X.self X.Type AnyClass 1.52

十五、元类型的应用2.12

因为 传进来的Animal.Type 可能是子类,cls.init()这里就调用的是子类的init(),确保调用子类的cls.init()调用成功,必须也要有init(),因此在class Animal { required init() {} } 申明 required 那么子类也就有init()

15.1 元类型的应用

十六、Self 类似oc 中的instancetype

相关文章:

  • STM32F103C8T6单片机的起始点:使用GPIO输出点亮我们的第一个小灯(HAL库版本)
  • 【简历全景认知】简历的历史演变与当代定位:从羊皮卷到算法博弈的艺术
  • 设计模式简述(十)责任链模式
  • 请问你怎么看待测试,指导哪些测试的类型,有用过哪些测试方法?
  • Nmap全脚本使用指南!NSE脚本全详细教程!Kali Linux教程!(六)
  • 人脸识别系统(人脸识别、前后端交互、Python项目)
  • 初识数据结构——Java集合框架解析:List与ArrayList的完美结合
  • 如何判断JVM中类和其他类是不是同一个类
  • Window进程监控工具,能自动重启进程和卡死检测
  • 【Linux篇】基础IO - 文件描述符的引入
  • Spring 中的 @Autowired 和 @Resource
  • 用Scala玩转Flink:从零构建实时处理系统
  • L2-046 天梯赛的赛场安排 #二次手写cmp比较函数 这个模拟思路太神了
  • Nginx 负载均衡案例配置
  • [蓝桥杯青少年组省赛 2024] 通关游戏的最少能量值
  • 13-产品经理-产品多分支平台管理
  • 设计模式简述(九)命令模式
  • 【统计方法】降维方式;pca, t-sne, mds
  • 浙江西湖游记
  • TLS协议详解
  • 服务周到的做网站/今日油价92汽油
  • 高端定制网站建设/海南seo顾问服务
  • ps怎么做网站/seo营销优化软件
  • 建个网站做产品怎样/百度一下百度官网
  • 网站设计制作公司推荐/网站查询工具seo
  • 做旅游网站的要求/聊城今日头条最新