Swift도 Kotlin의 if 공식을 쓰고 싶어요.

6742 단어 SwiftAndroidKotliniOS
Kotlin의 if식이 편리하기 때문에 Swift로도 해보고 싶어요.

Kotlin의 if 표현식

  • if식 반환값 때문에 변수를 직접 대입할 수 있어 편리합니다.
  • val boolean = true
    val string: String = if (boolean) {
        val str1 = "Hello"
        val str2 = "World"
        str1 + " " + str2
    } else {
        "NO"
    }
    print(string) // Hello World
    

    Swift에서 겪는 어려움


    단순히 값을 대입한다면 세 가지 연산자를 사용하면 된다.
    let string: String = boolean ? "YES" : "NO"
    
    그러나 브랜치 후에는 여러 줄 처리를 할 수 없습니다.
    // こんな記述はできない
    let string: String = boolean ? {
        let str1 = "Hello"
        let str2 = "World"
        return str1 + " " + str2
    } : "NO"
    

    벽장 사용 가능


    변환 참조를 보십시오. Setting a Default Property Value with a Closure or Function 1절은 폐쇄기를 사용하여 속성의 초기 값을 설정하는 방법을 설명합니다.폐쇄는 가격을 반환할 수 있기 때문에 사용할 수 있습니다.
    //  Setting a Default Property Value with a Closure or Functionの項より引用
    let someProperty: SomeType = {
        return someValue
    }()
    

    폐쇄+삼원 연산자로 실현


    엔클로저로 돌아가기만 하면 쉽게 실행할 수 있습니다.
    let string: String = boolean ? {
        let str1 = "Hello"
        let str2 = "World"
        return str1 + "" + str2
    }() : "NO"
    
    초기 값$0에도 사용할 수 있습니다.
    let string: String = boolean ? {
        let str2 = "World"
        return $0 + "" + str2
    }("Hello") : "NO"
    

    폐쇄식 + switch 문장으로 실현


    세 가지 연산자는 두 개의 지점만 만들 수 있기 때문에 세 개 이상으로 나누기 위해 switch 문장을 사용해 보세요.
    이것은 내부에 값을 보존하는 이중 폐쇄일 뿐만 아니라 실용적이지도 않을 것이다 var.
    댓글에 지적되고 수정됐어요!실용적일 것 같다
    let num = 0
    let string: String = {
        switch num {
        case 0:
            let str1 = "Hello"
            let str2 = "World"
            return str1 + "" + str2
        case 1:
            return ""
        default:
            return ""
        }
    }()
    

    총결산


    나는 Swift로 Kotlin의 if식 물건을 썼다.
    벽장을 사용하기 때문에 끼워넣기가 조금 늘어나지만 편리하게 사용할 수 있습니다.

    참고 자료

  • Kotlin - If Expression

  • The Swift Programming Language - Initialization
  • 좋은 웹페이지 즐겨찾기