복붙노트

[SWIFT] 스위프트 : switch 문에서 테스트 클래스 유형

SWIFT

스위프트 : switch 문에서 테스트 클래스 유형

해결법


  1. 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. 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. 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. 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")
    }
    
  5. from https://stackoverflow.com/questions/25724527/swift-test-class-type-in-switch-statement by cc-by-sa and MIT license