Swift_类型选择

Swift_类型选择


点击查看源码git

//类型选择
func test() {
    
    class MediaItem {
        
    }
    
    class Movie: MediaItem {
        
    }
    
    class Song: MediaItem {
        
    }
    
    let array = [Song(), Movie()]
    
    //is测试 类型判断
    for item in array {
        if item is Movie {
            print("Movie构建")
        } else if item is Song {
            print("Song构建")
        }
    }
    
    //as测试 类型转换
    for item in array {
        if let movie = item as? Movie {
            print("可转换为Movie: '\(movie)'")
        } else if let song = item as? Song {
            print("可转换为Song: '\(song)'")
        }
    }
    
    //AnyObject能够是任何类型的一个实例 值类型或引用类型
    let someObjects: [AnyObject] = [Movie(), 1 as AnyObject, "33" as AnyObject]
    print(someObjects)
    
    //Any任何类型数据 还能够是函数 闭包等
    var things = [Any]()
    things.append(0) //值类型
    things.append(Movie()) //引用类型
    things.append({ (name: String) -> String in "Hello, \(name)" }) // 闭包
}
相关文章
相关标签/搜索