Swift - 类型判断is 与 类型转换as
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
 | 
//基类,人类class Human{}//男人类class Man:human{}//女人类class Woman:human{} | 
1,is 用来做类型检查
(注意:is也可以用来检查某个类是否遵循了某个协议)
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
 | 
let man = Man()let woman = Woman()var arr = [man,woman]for people in arr {    if people is Man {        println("这是个男人")    }else if people is Woman {        println("这是个女人")    }} | 
2,as 用来做类型转换
(注意:如果不确定类型转换能否成功,可以在as后面加问号“?”)
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
 | 
let man = Man()let woman = Woman()var arr = [man,woman]for people in arr {    if let m = people as? Man {        println("这是个男人")    }else if let w = people as? Woman {        println("这是个女人")    }} | 
Swift - 类型判断is 与 类型转换as的更多相关文章
- 类型和原生函数及类型转换(二:终结js类型判断)
		
typeof instanceof isArray() Object.prototype.toString.call() DOM对象与DOM集合对象的类型判断 一.typeof typeof是一个一元 ...
 - Swift4 类与继承, 类型转换, 类型判断
		
创建: 2018/03/05 完成: 2018/03/07 更新: 2018/03/09 完善标题 [Swift4 类与继承, 类型转换] -> [Swift4 类与继承, 类型转换与判断] 补 ...
 - Go 类型转换与类型判断
		
目录 Go 类型转换与类型判断 1.类型转化 2.类型判断 Go 类型转换与类型判断 1.类型转化 T(a) : T 是目标类型 a 是源变量 package main import "fm ...
 - Swift入门(十一)——类型转换与is、as操作
		
三种操作:is.as?和as! Swift是强类型语言,但也允许开发者通过is.as?和as!这三种操作来对类型进行判断和强制转换.其中is用作类型判断,而as?和as!则分别是类型转换的可选形式和强 ...
 - swift 类型.
		
swift 类型 变量声明 用let来声明常量,用var来声明变量 可以在一行中声明多个常量或者多个变量,用逗号隔开 var x = 0.0, y = 0.0, z = 0.0 类型安全 Swift ...
 - TypeScript 之类型判断
		
在使用 Angular 做项目的时候,对 TypeScript 的类型判断不太熟练,为了方便查找,特意对 TypeScript 的类型判断做了简单梳理.文章只是 TS 官网的内容摘要,没有高深的知识, ...
 - jQuery使用(十二):工具方法之type()之类型判断
		
type()的使用 类型判断方法之is...() 实现原理可以参考我的另一篇js源码剖析博客: 类型和原生函数及类型转换(二:终结js类型判断) $.type( undefined ) === &qu ...
 - JS 中对变量类型判断的几种方式
		
文章整理搬运,出处不详,如有侵犯,请联系~ 数据类型判断和数据类型转换代码工具 在 JS 中,有 5 种基本数据类型和 1 种复杂数据类型,基本数据类型有:Undefined, Null, Boo ...
 - JS 相等判断 / 类型判断
		
相等判断 JavaScript提供三种不同的值比较操作: 严格相等 ("triple equals" 或 "identity"),使用 === , 宽松相等 ( ...
 
随机推荐
- jquery 单击li防止重复加载的实现代码
			
因为加载内容比较慢,所以用户可能在li上不经意点击了两次,那么就会请求两次,这是我们不想看到的. 今天在javascript-jquery群上一筒子发了两个demo给我,他的方法是先将单击的li节点拷 ...
 - 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
			
设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑.类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态.单独的对象是一种组织代码的 ...
 - [置顶] 深入浅出MongoDB(三)环境搭建
			
上次的博文深入浅出MongoDB(二)概述中我们已经将MongoDB的相关概念讲解了一下,接下来我们继续进行MongoDB学习.在学习之前,大家首先需要在自己的电脑上安装MongoDB. 1.安装 安 ...
 - 相对路径与绝对路径构造file对象
			
package file; import java.io.File; public class FileTest1 { public static void main(String[] args) { ...
 - 自己python程序的并行修改
			
遇到运算量大的程序,学习了下python并行运算的方法,在自己的程序上进行了修改,看看是否可以增加效率.原始代码是: import gt_apps as my_apps f=file('sample. ...
 - java--多线程之Thread继承
			
多线程,是java的特殊机制.所谓线程就是程序执行的流程.“多线程”就是可以在同一时刻能够执行多个程序块(注意,是程序块,而不是程序),这样一来就可以使得程序的执行速度大大增加. package Te ...
 - MongoDB(二)——安装配置了解
			
前边介绍了MongoDB的大概理论知识,这篇来对MongoDB进行一下安装使用,支持安装在windows和linux上,当然了很多其它情况下我们是安装在linux上,由于毕竟server用linux的 ...
 - 在vc中使用xtremetoolkit界面库-----安装及环境配置
			
近期想用一下xtremetoolkitPro界面库.网上的使用教程资源也不多,当中着实遇到了很多的困难,毕竟是首次使用. 首先当然是配置发开环境了: 我使用的是vc6.0+xtremetoolkitP ...
 - STM32启动模式
			
STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash.2)SRAM = 芯片内置的RAM区,就是内存啦.3)系统存储器 = 芯片内部一块特定的区域,芯片 ...
 - How to install vim on linux
			
前几日了解到 vim 文本编辑器,据说很强大,使用起来效率很高,今天怀着很好奇的心理,学习了一下vim编辑器的下载安装方法,在此详细介绍一下安装vim编辑器的几种常用方法: 第一种方法就是在 Ubun ...