美文网首页
Swift5.1类型转换&扩展

Swift5.1类型转换&扩展

作者: 037e3257fa3b | 来源:发表于2020-09-22 15:29 被阅读0次

18.类型转换

  • 类型检查

    类型检查:用类型检查操作符( is )来检查一个实例是否属于特定子类型。若实例属于那个子类型,类型检查操作符返回 true ,否则返回 false 。
    
    
    向下转型:某类型的一个常量或变量可能在幕后实际上属于一个子类。当确定是这种情况时,你可以尝试 用类型转换操作符( as? 或 as! )向下转到它的子类型。因为向下转型可能会失败,类型转型操作符带有两种不同形式。条件形式 as? 返回⼀个你试 图向下转成的类型的可选值。强制形式 as! 把试图向下转型和强制解包转换结果结合为一个 操作。
    
    
  • Any 和 AnyObject 的类型转换

    //Swift 为不不确定类型提供了了两种特殊的类型别名:
    - Any 可以表示任何类型,包括函数类型。 
    - AnyObject 可以表示任何类类型的实例。
    
    Any 类型可以表示所有类型的值,包括可选类型。Swift 会在你用 Any 类型来表示一个可选值的时候,给你一个警告。如果你确实想使用 Any 类型来承载可选值,你可以使用 as 操作符显式转换为 Any ,如下所示:
    let optionalNumber: Int? = 3 things.append(optionalNumber) things.append(optionalNumber as Any) // 没有警告
    

19.嵌套类型

20.扩展

扩展可以给一个现有的类,结构体,枚举,还有协议添加新的功能。但是不能重写已经存在的功能。
Swift 中的扩展可以:
  添加计算型实例例属性和计算型类属性
  定义实例方法和类方法
  提供新的构造器器
  定义下标
  定义和使用新的嵌套类型 
  使已经存在的类型遵循(conform)一个协议
  
1.语法
- 使⽤ extension 关键字声明扩展:
extension SomeType {
    // statements
}
- 扩展可以扩充一个现有的类型,给它添加一个或多个协议。协议名称的写法和类或者结构体一样:
extension SomeType: SomeProtocol, AnotherProtocol { 
    // 协议所需要的实现写在这⾥里里
}

2.计算型属性
扩展可以给现有类型添加计算型实例例属性和计算型类属性。但是它们不能添加存储属性,或向现有的属性添加属性观察者。

相关文章

  • Swift5.1类型转换&扩展

    18.类型转换 类型检查类型检查:用类型检查操作符( is )来检查一个实例是否属于特定子类型。若实例属于那个子类...

  • Swift5.1—类型转换

    类型转换可以判断实例的类型,也可以将实例看做是其父类或者子类的实例。 类型转换在 Swift 中使用 is 和 a...

  • Swift5.1学习随笔之类型转换

    整数UInt16跟UInt8类型不同,无法直接进行相加,需要其中一个进行转换 浮点数 字面量可以直接相加,因为数字...

  • Convert转换模式

    参考Retrofit的转换接口 默认转换类 扩展的转换类 客户端使用 可以看到,他们都将传入的位置类型的数据转换成...

  • typeScript学习笔记1

    优势:类型检查,语言扩展,工具属性 强类型语言:不允许改变变量的数据类型,除非进行强制类型转换弱类型语言:变量可以...

  • 2020-02-12

    loader主要是用于转换某些类型的模块,它是转换器,加载器 plugin是插件,它是对webpack本身的扩展,...

  • JAVA 多态

    总结:多态的体现主要在覆盖重写、类型转换,增强了程序的扩展性。

  • Swift5.1—Any 和 AnyObject 的类型转换

    Swift 为不确定类型提供了两种特殊的类型别名: Any 可以表示任何类型,包括函数类型。AnyObject 可...

  • C语言类型转换

    类型转换的方式 自动类型转换1.运算转换(规则:会把小类型转换为大类型) 2.赋值转换 强制类型转换格式:(类型)...

  • 引用类型转换

    向上类型转换(自动类型转换),是小类型到大类型的转换向下类型转换(强制类型装换),是大类型到小类型的转换在强制类型...

网友评论

      本文标题:Swift5.1类型转换&扩展

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