<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                在Swift開發過程中,我們會遇到以下情況:判斷某個實例是那個類生成的;將子類轉換為父類;想讓一個變量可以為任何類型(值對象、引用對象、方法)。。。 Swift也能處理這些情況,需要使用的關鍵字:類型判斷is、類型轉換as、屬性聲明AnyObject和Any。 在介紹這四個關鍵字的使用前,先構建類MediaItem、Movie和Song。 ~~~ class MediaItem { } class Movie: MediaItem { } class Song: MediaItem { } ~~~ 其中Movie和Song都繼承MediaItem。 ## Is is主要用于類型判斷,如我們判斷某個實例是那個類的子類,或是那個類生成的。 ~~~ let array = [Song(), Movie()] // is測試,類型判斷 for item in array { if item is Movie { print("Movie構建") } else if item is Song { print("Song構建") } } ~~~ ## As as主要用于類型轉換,可將一個類轉換為另一個類。as后可以跟’?’或’!’。 - as?:預轉換,轉換失敗時,返回nil。 - as!:強轉換,轉換失敗時,程序崩潰。 ~~~ for item in array { if let movie = item as? Movie { print("可轉換為Movie: '\(movie)'") } else if let song = item as? Song { print("可轉換為Song: '\(song)'") } // 強轉換,失敗時,程序崩潰 let movie = item as! Movie } ~~~ ## AnyObject 使用AnyObject聲明的常量(變量)可以是值對象或引用對象。 ~~~ let someObjects: [AnyObject] = [Movie(), 1, "33"] ~~~ ## Any Any和AnyObject具有相同的特性,只是Any還可以代表方法和閉包。 ~~~ var things = [Any]() things.append(0) // 值類型 things.append(Movie()) // 引用類型 things.append({ (name: String) -> String in "Hello, \(name)" }) // 閉包 ~~~ ## 其他 ### 參考資料 [The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html) ### 文檔修改記錄 | 時間 | 描述 | |-----|-----| | 2015-11-1 | 根據 [The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html)中的Type Casting總結 | 版權所有:[http://blog.csdn.net/y550918116j](http://blog.csdn.net/y550918116j)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看