struct someStruct: someProtocol {
init(value: Int) { }
}
struct someStruct2: someProtocol2 {
init(value: Int) { }
}
let struct1 = someStruct(value: 10)
let struct2 = someStruct(value: 20)
var someAny: Any = struct1
var someAny2: Any = struct2
if let result = someAny2 as? someProtocol {
print("프로토콜을 준수합니다.")
}
else {
print("프로토콜을 준수하지 않습니다.")
}
func check(target: Any?) {
guard let result = target as? someProtocol else {
print("프로토콜을 준수하지 않습니다.")
return
}
}
check(target: someAny2)
- 조건을 통해 nil 인 경우와 아닌 경우를 따로 처리하고 싶다면 if let문을 사용하는 것이 좋아보인다.
- 에러 발생, 예외 상황 처리가 목적인 코드를 작성할 때는 guard let 문을 사용하는 것이 깔끔해 보인다.