Swift 유형 선택(Type Casting)
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 뒤에'?'또는!
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)
문서 수정 레코드
타임
묘사
2015-11-1
The Swift Programming Language(Swift 2.1)의 Type Casting 요약 정보
저작권 소유:http://blog.csdn.net/y550918116j
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
백그라운드에서 값을 계산하고 Swift 동시성 이후에 결과 사용값을 계산해야 하고 메인 스레드를 차단하지 않으려면 계산된 값을 반환하는 Swift Task 구조에서 해당 값을 계산하면 됩니다. Swift 동시성 이전에는 백그라운드 대기열로 이동하여 필요한 값을 계산하고 필요한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.