小工具      在线工具  汉语词典  css  js  c++  java

swift3.0 as, as!, as?关键字和三个运算符的使用

Swift学习 额外说明

收录于:43天前

  • 作为!操作员!

    我们开始做吧!

  • 阐明

    因为最近在学习Swift,这里根据苹果官方文档加上自己的理解,总结了下常用的as、as!、as? 这三种类型转换操作符的异同和使用方式。
  • 文本

    • 作为
      关键词有保证的转换和升级
      理解:字面理解就是有保证的转换,从派生类转换为基类的向上转型
      著名代码:
      // 将1转成float
      let num = 1 as CGFloat
      |------------------------
      // dog转换到父类animal
      class Animal {}
      class Dog: Animal {}
      let d = Dog()
      d as Animal
    • 作为!
      关键词强制转换、向下转型
      理解:字面理解就是有强项转换,即向下转型,子类(派生类)向父类转换,官方解释说这是一个不被保证的转换,可能会因为强转的失败而会导致崩溃。同时 是一个陷阱的标志,就像⚠️一样,用起来存在一定危险性
      著名代码:
      // Dog到Animal的转化
      class Animal {}
      class Dog: Animal {}
      let a: Animal = Dog()
      a as Dog        // as不能将a转成Dog,即不能向下转换
      a as! Dog    // as!能强行将a转成Dog -> Bingo
    • 作为?
      关键词可选,无
      理解:Swfit代码写一段时间后会发现到处都是  ,这预示着如果转换不成功的时候便会返回一个 nil 对象。成功的话返回可选类型值(optional)。
      著名代码:
      // Dog、Cat和Animal的转换关系
      class Animal {}
      class Cat: Animal {}
      class Dog: Animal {
      var name = "Spot"
      }
      let dog: Dog? = nil
      dog?.name        // 选择调用,返回空值nil
      dog!.name        // 强行调用,报错
      let animal: Animal = Cat()
      animal as? Dog    // 猫转狗失败,返回nil
      animal as! Dog    // 猫强行转狗,失败报错
  • 引用的参考文献

. . .

相关推荐

额外说明

使用weblogic部署若易项目(图文教程)

本章教程,主要介绍如何使用weblogic部署若依项目 目录 一、安装weblogic 二、将若依项目打包为war包 三、启动 weblogic

额外说明

idea 每次创建项目都要重新配置maven(或设置其他配置)

idea 每次创建项目都要重新配置maven,有没有办法只要设置一次,以后就不用再更改呢?   操作 效果 这样创建新项目,这里就不再是默认的maven路径了 其他 比如配置运行环境,可以到其他项目设置。 如设置jdk8 或将当前的设置为息的模板自定义模

额外说明

MySQL索引和事务

索引和事务 1. 索引 1.1 概念 1.2 作用 1.3 使用 1.4 索引的存储方式 2. 事务 2.1 概念 2.2 使用 2.3 事务的基本特性 2.4 事务的隔离级别 1. 索引 1.1 概念 索引是一种特殊的文件,包含着对数据表里所有记录的引

额外说明

auto.js启动app

CODE: // 启动app的方式 app.launchApp("QQ"); // 获取应用的包名 var name = getPackageName("QQ"); log(name);  

额外说明

spring ioc原理(转载,侵删)

参考博客: https://blog.csdn.net/smartbetter/article/details/100672806

额外说明

PHP实战开发23-PHP结合Nginx获取用户真实IP地址

文章目录 一、前言 二、关于用户IP的背景知识 2.1 HTTP请求 2.2 HTTP代理服务器 2.3 X-Forwarded-For头部 三、代码实现 3.1 Nginx配置 3.2 PHP代码处理 总结 一、前言 本文已收录于PHP全栈系列专栏:P

额外说明

[Ext JS] 3.5 单选框 Radio与复选框CheckBox

Radio 与Checkbox Radio 单选框,意思是当有一组同名的单选框时,一次只能选择一个。有单选框,也就有复选框(checkbox),对应的复选框就可以选择多个。 Radio 和 Checkbox 可以用来显示一个框, 也可以用来处理多个同名的

额外说明

[设计模式-结构型]适配器(Adapter)

概括 名称 Adapter 结构 动机 将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用性 你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该

额外说明

yml语法学习 SpringBoot配置文件自动装配 yml文件有提示读取配置文件

这里写目录标题 yaml学习 编码规则 数据结构 对象 数组 字符串 null SpringBoot配置yaml 引入依赖 添加注解 WxConfig.java DemoApplication .java 配置文件已有提示 使用配置 输出结果 yaml学

额外说明

一张图快速了解23种设计模式

设计模式 设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。 这是《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented)中对设计模式的定

ads via 小工具