你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 窺探Swift之使用Web浏覽器編譯Swift代碼以及Swift中的泛型

窺探Swift之使用Web浏覽器編譯Swift代碼以及Swift中的泛型

編輯:IOS開發綜合
  •    有的小伙伴會問:博主,沒有Mac怎麼學Swift語言呢,我想學Swift,但前提得買個Mac。非也,非也。如果你想了解或者初步學習Swift語言的話,你可以登錄這個網站:http://swiftstub.com/ 。該網站可以在線運行出代碼結果,也可以說這是一個在線的Playground。你可以實時觀察你代碼的運行結果。如果你沒有Mac筆記本,那麼你只需打開你的浏覽器,然後輸入上述網址,就可以搞搞Swift這門語言了,灰常好用的呢。下方的截圖就是該網址打開的截圖。

      上面如果算是工具性的網站的話,那麼接下來將會給大家介紹一個學習網站:http://swiftdoc.org 。該網站集成了Swift的各種東西,內容雖然是英文的,但是裡邊的東西還是相當不錯的,裡邊的內容也會隨著Swift語言版本的更新而更新。如果你的英文比較好,那麼完全可以去這個網站中去汲取你的知識。下方是該網站的一個截圖,也是一個比較好的學習的地方。

      Swift中也是支持泛型的,在許多現代編程語言,如C++, Java, C#也都是支持泛型的。泛型,從表面的名字來看,就是寬泛的數據類型。使用泛型定義的方法,類,結構體,協議等可以支持不同的數據類型。泛型其實就是數據類型的占位符。當然這個占位符的名字有你來定,你定義的這個占位符就是數據類型的變量,你傳給他什麼類型,那麼這個泛型占位符就代表什麼類型。這樣說來泛型理解起來就不困難了。

      今天博客中的內容算是比較簡單,也是比較基礎,雖簡單,但失其重要性。今天博客中就通過一些示例來窺探一下泛型的使用方法和使用場景。無論你是在函數,類,協議,延展等場景中使用泛型。他們有一個共性,同時也是泛型的特點“高度重用性”。能寫出高度重用的東西,在編程中是灰常令人興奮的一件事情。

      一. 泛型函數

        1.單一占位符泛型函數

        下面就使用一個經典案例:兩個數值進行交換。來使用泛型,寫一個通用的函數,這個函數的功能就是交換兩個變量的值。在Swift中不允許類型隱式轉換,也就是說,如果你定義的該函數是交換兩個整數的,那麼如果你想使用他來交換浮點類型的數據,那麼對不起,是不允許這樣做的。為了寫個通用的函數,那接下來就是泛型出場的時候了。

        下面就是使用泛型來定義一個交換兩個變量的值的函數,該函數如下圖所示。其中MyCustomeType就是在函數中定義的泛型占位符,改占位符表示傳入的參數是什麼類型,那麼MyCustomeType就是什麼類型。這樣一來,使用泛型定義的該函數就是通用的了。在該函數中只用到了一個MyCustomeType,也就是下方的函數還是有一定約束性,就是number1和number2的類型都是相同數據類型的,這種情況也是單一占位符泛型函數。

        

        調用上述函數來交換兩個字符串類型的值:

        同樣的函數,你還可以使用它來交換兩個整數,浮點數等等其他數據類型,下方就是交換的兩個整型的數據,也是沒有問題的。

        2.多個占位符的泛型函數

          這個是在上述函數中進行的擴充,泛型占位符允許是一個列表的形式出現的,也就是允許有多個不同的泛型占位符來代表不同的數據類型。也許說起來有些拗口,接下來就來個實例在函數中使用多個泛型占位符。具體實例如下所示。本質上允許在泛型占位符中添加多個泛型類型變量。下方的函數兩個參數的數據類型允許不同,因為其參數使用的是不同的泛型占位符,所以其類型允許是不同的。具體使用方式如下所示。

      二.泛型類

        泛型類,顧名思義,就是在類中使用泛型。在類中使用泛型,其實和函數中使用泛型是一樣的。就是在聲明類的時候,使用泛型占位符表示一個要處理的泛型即可。下方就是一個泛型類,其中有個泛型類型數組,還有一個打印該數組的方法,如下所示:

        上面是泛型類的定義,緊接著就是泛型類的使用了,下方是創建一個泛型類的實例,然後調用相應的方法,具體如下所示。

        上面是泛型類的定義與使用,泛型還可以應用於結構體,協議,延展等,其使用方法和泛型類是差不多的,要學會舉一反三。在本篇博客中就不對泛型結構體,泛型協議,泛型延展,以及泛型的約束做過多的贅述了。

    1. 上一頁:
    2. 下一頁:
    蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
    Copyright © Ios教程網 All Rights Reserved