在Swift中,通常使用is和as操作符来实现类型检查和转换。下面通过样例来演示使用方法,首先定义几个类。
1
2
3
4
5
6
7
8
9
10
11
<code>//基类,人类</code>
<code>class</code> <code>Human</code><code>{</code>
<code>}</code>
<code>//男人类</code>
<code>class</code> <code>Man</code><code>:human{</code>
<code>//女人类</code>
<code>class</code> <code>Woman</code><code>:human{</code>
1,is 用来做类型检查
(注意:is也可以用来检查某个类是否遵循了某个协议)
<code>let</code> <code>man =</code><code>Man</code><code>()</code>
<code>let</code> <code>woman =</code><code>Woman</code><code>()</code>
<code>var</code> <code>arr = [man,woman]</code>
<code>for</code> <code>people</code><code>in</code> <code>arr {</code>
<code> </code><code>if</code> <code>people</code><code>is</code> <code>Man</code> <code>{</code>
<code> </code><code>println</code><code>(</code><code>"这是个男人"</code><code>)</code>
<code> </code><code>}</code><code>else</code> <code>if</code> <code>people</code><code>is</code> <code>Woman</code> <code>{</code>
<code> </code><code>println</code><code>(</code><code>"这是个女人"</code><code>)</code>
<code> </code><code>}</code>
2,as 用来做类型转换
(注意:如果不确定类型转换能否成功,可以在as后面加问号“?”)
<code> </code><code>if</code> <code>let</code> <code>m = people</code><code>as</code><code>?</code><code>Man</code> <code>{</code>
<code> </code><code>}</code><code>else</code> <code>if</code> <code>let</code> <code>w = people</code><code>as</code><code>?</code><code>Woman</code> <code>{</code>