天天看点

Swift - 类型判断is 与 类型转换as

在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>