import UIKitclass ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()checkAndCast()}
}func checkAndCast() {var appleCount = 0var orangeCount = 0let apple1 = Apple(placeOfOriginal: "成都")let apple2 = Apple(placeOfOriginal: "陕西")let apple3 = Apple(placeOfOriginal: "西安")let orange1 = Orange(placeOfOriginal: "昆明")let orange2 = Orange(placeOfOriginal: "台北")//将其放到同一个篮子里,我们这里用数组表示篮子//"苹果的原产地是:成都""橙子的原产地是:昆明""苹果的原产地是:陕西""橙子的原产地是:台北""苹果的原产地是:西安"let basket = [apple1, orange1, apple2, orange2, apple3]for fruit in basket {//as? 类型转换 如果不确定是否转换成功就必须使用这个可选类型,这样即便不成功会返回nil,但是如果强制解封失败就会报错if let apple = fruit as? Apple {apple.description()} else if let orange = fruit as? Orange {orange.description()}//这里的is就是类型判断if fruit is Apple {appleCount += 1} else if fruit is Orange {orangeCount += 1}}debugPrint("一共有\(appleCount)个苹果和\(orangeCount)个橘子")
}class Fruit {let placeOfOriginal:Stringinit(placeOfOriginal: String) {self.placeOfOriginal = placeOfOriginal}
}class Apple: Fruit {func description() {debugPrint("苹果的原产地是:\(placeOfOriginal)")}
}class Orange: Fruit {func description() {debugPrint("橙子的原产地是:\(placeOfOriginal)")}
}

类型转换as和判断is相关推荐

  1. 前端:JS/17/前篇总结(JS程序的基本语法,变量),数据类型-变量的类型(数值型,字符型,布尔型,未定义型,空型),数据类型转换,typeof()判断数据类型,从字符串提取整数或浮点数的函数

    JS程序的基本语法 1,JS是区分大小写的,如:Name和name是不同的: 2,JS中每一条语句,一般以英文的分号(;)结束,在Java中是严格地一定要加上分号,不然会报错:但在JavaScript ...

  2. matlab 类型转换(类型判断)

    char:Convert to character array,转换为字符数组:matlab 下没有 str 字符串类型转换: char(0-255) ⇒ ASCII 码的转换: im2double( ...

  3. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  4. vb怎么判断整数_VB数学函数大全

    Hello大家好,从本节课程开始,我们开启了新的篇章--VB常用内置函数.在VB6.0中,有很多的内置函数,利用好这些函数可以轻松地实现许多功能,减少代码编写量,使程序设计效率更上一层楼.在本章节,我 ...

  5. char强制类型转换为int_为强制类型转换正名

    为强制类型转换正名​www.yexiaochen.com 引子 强制类型转换是JavaScript开发人员最头疼的问题之一, 它常被诟病为语言设计上的一个缺陷, 太危险, 应该束之高阁. 作为开发人员 ...

  6. java 判断类型_Java中类型判断的几种方式

    在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式.拉勾IT课小编为大家提供java种类型判断方式. instanceof instanceof是Ja ...

  7. Java中类型判断的几种方式

    前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个对象是 ...

  8. java判断类型_Java中类型判断的几种方式

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  9. Java SE_封装、继承、object类、super-this关键字、方法重写、多态、instanceof、类型转换

    封装 该露的露,该藏的藏 我们程序设计要追求"高内聚,低耦合".高内聚:类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅暴露少量的方法给外部使用. 封装(数据的隐藏) 通常 ...

最新文章

  1. 第五届中国企业服务年会:洞见2022数智化的“光与火”
  2. 牛津大学名誉教授Colin Blakemore:大脑是如何计算的?
  3. Elasticsearch索引原理
  4. vue 中watch函数名_VUE中watch用法
  5. Genymotion模拟器拖入文件报An error occured while deploying the file的错误
  6. php 在函数里打开链接,JavaScript中打开链接的几种方法介绍
  7. keras框架实现手写数字识别
  8. pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害
  9. python怎么输入三个数按大小输出_Python练习一 : 随机输入三数字,按大小顺序输出...
  10. VALSE2019总结(6)-年度总结-物体检测
  11. ES11新特性_String.prototype.matchAll方法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记063
  12. Linux-安装python3环境
  13. python常用代码大全-python代码大全
  14. 视频实现blob加密
  15. mflac格式解密_如何解密QQ音乐的MFLAC和MGG格式
  16. 控制工程实践(7)——PID四种类型控制器(之比例控制器P)
  17. 解决:在ubuntu下安装R语言ks包时的error:configuration failed for package ‘rgl’
  18. 体力活动水平的计算机软件著作权查询,软件著作权被竞争对手抢先,著作权保护的客体对象是谁?...
  19. (1)初识人员定位:对人员定位相关知识的自己的理解
  20. 玉米社:竞价推广优化怎么做?竞价推广优化技巧

热门文章

  1. oh-my-zsh 国内安装及配置
  2. GAN能进行股票预测吗?
  3. 立思辰打印机IP连接和USB连接
  4. c#里什么控件可以播放视频(avi)?怎么实现
  5. python问题两个乒乓球队进行比赛_Python练习题 017:三支乒乓球队出赛名单
  6. 《简明Python教程》之面向对象编程
  7. 有了服务器,域名,如何将静态网页放到服务器上,让所有人都能访看到?
  8. 【LeetCode】自由之路 [H](记忆化搜索)
  9. 深度学习之OCR识别
  10. linux pythonide_用于Linux程序员的8个最佳Python IDE