Swift Guard 문법

1601 단어
만약 let과guard는 문법사탕일 뿐이고 없어도 되지만 코드가 있으면 더욱 간결하고 편리하게 할 수 있다.iflet과guard를 이해하려면, 만약 이 두 가지가 없다면 코드가 어떻게 쓰일지 생각해 봐도 무방하다.

if let

    func doSomething(str: String?) {
        let v :String! = str
        if v != nil
        {
            // use v to do something
        }
    }

Swift에는 optional이 있기 때문에 항상 비어 있는지 아닌지를 판단해야 한다.만약iflet이 없다면 대체로 위의 모양으로 쓰고iflet이 있으면 고칠 수 있다
    func doSomething(str: String?) {
        if let v = str
        {
            // use v to do something
        }
    }

위의 두 단락 코드의 제어 흐름은 같다.대조해 보면iflet의 작법이 더욱 간결하고 편리하다는 것을 알 수 있다.

guard


만약if에 나타난 코드가 매우 길다면, 우리는 코드를 쓸 때 오류 상황을 먼저 되돌릴 수 있습니다.예를 들면 다음과 같습니다.
    func doSomething(str: String?) {
        let v:String! = str
        if v == nil
        {
            return
        }
        // use v to do something
    }

이렇게 하면 지나치게 많은 끼워 넣는 것을 피할 수 있다.위 코드는 정말 너무 흔합니다. swift에서도guard라는 문법 사탕을 제공합니다.guard로 바꿀 수 있습니다.
    func doSomething(str: String?) {
        guard let v = str else { return }
        // use v to do something
    }

위의 두 단락 코드의 제어 흐름은 같다.가드의 작법이 더욱 간결하고 편리하다는 것을 알 수 있다.iflet과guard 문법에 나타난where는 단지 몇 가지 조건을 추가할 뿐이다.논리 연산 & & & & |에 해당합니다.SQL의 조건 구문도 where라는 키워드를 사용합니다.만약 아직 이해하지 못한다면, if let과guard를 사용하지 않고 코드를 고쳐 쓰십시오.몇 번 더 시도해 보면 매우 자연스럽다는 것을 알게 될 것이다.

총결산


if문장과 마찬가지로,guard도 하나의 표현식의 브리 값을 바탕으로 코드가 실행되는지 여부를 판단한다.if문장과 달리,guard는 조건이 충족되지 않을 때만 이 코드를 실행할 수 있습니다.너는 가드를 거의 Assert로 볼 수 있지만, 붕괴가 아니라 우아하게 물러날 수 있다.

좋은 웹페이지 즐겨찾기