類型轉換

1.1類型檢查:is

var movieCount = 0
var songCount = 0
for item in library {
if item in library {
    movieCount += 1
}else if item is Song {
     songCount += 1
}
}

1.2向下轉型
用類型轉換符:as?或as!

as? 返回一個可選值
as!強制形式。

for item in library {
if  let movie = item as? Movie {
 print("Movie: '\(movie.name)', dir. \(movie.director)")
}else if let song = item as? Song {
        print("Song: '\(song.name)', by \(song.artist)")
    }

1.3 Any和AnyObject的類型轉換

Any:表示任何類型,包括函數類型
AnyObject:表示任何類類型
使用場景:
只有當你確實需要他們的行為和功能時才使用Any和AnyObject

var things = [Any]()

things.append(0)
things.append(0.0)
things.append(42)
things.append(3.14159)
things.append("hello")
things.append((3.0, 5.0))
things.append(Movie(name: "Ghostbusters", director: "Ivan Reitman"))
things.append({ (name: String) -> String in "Hello, \(name)" })
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容