天天看點

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>