iOS-Develop(Swift)2016.09.13 12:39


Guard에 대해서는 설명이 잘 나온 글들이 많다.

완벽하게 이해하지는 못하였지만 느낌은 알 것 같은..

설명은 쓸 수 없지만.. 잊지않기 위해 활용한 소스라도 올려본다.



 * 처음 테스트로 작성한 코드

var ValueNil:String? = nil

ValueNil = "Guard"


func guardTest() {

    guard ValueNil != nil else {

        print("bad")

        return

    }


    print(ValueNil)

}

guardTest() // 출력은 Optional("Guard")



 - 그러나 여기서 Optional이 붙어 버리니 어찌해야하나..

 - Guard 부분에서 nil을 체크하였기 때문에 print에서 "!" 를 붙여도 상관이 없음.

 - 그러나 "!" 자체가 불안하다.

 - 그래서 물어본 결과...단순한 사실을 잊고 있었다.


var ValueNil:String? = nil

ValueNil = "Guard"

func guardTest() {

    guard let tmp = ValueNil else {

        print("bad")

        return

    }

    print(tmp)

}

guardTest()  // 출력은 Guard


- guard를 사용하게 되면 이후 소스에서도 계속적으로 언래핑된다는 것이다.

- 쓸데없는 if let을 사용을 줄일 수가 있다고 한다.

                      
Posted by 평생초보