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