[SWIFT] 스위프트 : switch 문에서 테스트 클래스 유형
SWIFT스위프트 : switch 문에서 테스트 클래스 유형
해결법
-
1.당신은 절대적으로 스위치 블록에 사용할 수 있습니다. (이 과정의 모든 국한되지 비록)를 참조 언어 프로그래밍 스위프트의 "모든 및 AnyObject 캐스팅 입력합니다." 그들은 다양한 예제를 가지고 :
당신은 절대적으로 스위치 블록에 사용할 수 있습니다. (이 과정의 모든 국한되지 비록)를 참조 언어 프로그래밍 스위프트의 "모든 및 AnyObject 캐스팅 입력합니다." 그들은 다양한 예제를 가지고 :
for thing in things { switch thing { case 0 as Int: println("zero as an Int") case 0 as Double: println("zero as a Double") case let someInt as Int: println("an integer value of \(someInt)") case let someDouble as Double where someDouble > 0: println("a positive double value of \(someDouble)") // here it comes: case is Double: println("some other double value that I don't want to print") case let someString as String: println("a string value of \"\(someString)\"") case let (x, y) as (Double, Double): println("an (x, y) point at \(x), \(y)") case let movie as Movie: println("a movie called '\(movie.name)', dir. \(movie.director)") default: println("something else") } }
-
2.의 예를 두는 "경우 것은 - 경우는 int이며 문자열은"여러 경우에 사용할 수 있습니다 작업이, 비슷한 개체 유형에 대해 동일한 작업을 수행하기 위해 함께 몽둥이. 여기서 ","시 유형을 분리하는 단계 OR 연산자처럼 동작한다.
의 예를 두는 "경우 것은 - 경우는 int이며 문자열은"여러 경우에 사용할 수 있습니다 작업이, 비슷한 개체 유형에 대해 동일한 작업을 수행하기 위해 함께 몽둥이. 여기서 ","시 유형을 분리하는 단계 OR 연산자처럼 동작한다.
switch value{ case is Int, is String: if value is Int{ print("Integer::\(value)") }else{ print("String::\(value)") } default: print("\(value)") }
데모 링크
-
3.경우에 당신은 단지 물건을 값을 가지고 있지 않습니다
경우에 당신은 단지 물건을 값을 가지고 있지 않습니다
func test(_ val:Any) { switch val { case is NSString: print("it is NSString") case is String: print("it is a String") case is Int: print("it is int") default: print(val) } } let str: NSString = "some nsstring value" let i:Int=1 test(str) // it is NSString test(i) // it is int
-
4.나는이 구문을 좋아한다 :
나는이 구문을 좋아한다 :
switch thing { case _ as Int: print("thing is Int") case _ as Double: print("thing is Double") }
이 같은 빠른 기능을 확장하는 당신에게 가능성을 제공하기 때문에 :
switch thing { case let myInt as Int: print("\(myInt) is Int") case _ as Double: print("thing is Double") }
from https://stackoverflow.com/questions/25724527/swift-test-class-type-in-switch-statement by cc-by-sa and MIT license
'SWIFT' 카테고리의 다른 글
[SWIFT] DestinationViewController SEGUE와 UINavigationController가 스위프트 (0) | 2020.11.06 |
---|---|
[SWIFT] 클래스 PLBuildVersion는 모두 / 응용 프로그램에서 구현 [중복] (0) | 2020.11.06 |
[SWIFT] 루프의 신속한 폐쇄 (0) | 2020.11.06 |
[SWIFT] AVAudioPlayer.play ()는 사운드를 재생하지 않습니다 (0) | 2020.11.06 |
[SWIFT] 스위프트 4 JSON Codable는 - 반환 값은 때때로 객체, 다른 배열입니다 (0) | 2020.11.06 |