2016-12-13 1 views
-1

guard을 사용하여 더 유용한 정보가 있는지 확인한 후 guard을 사용하여 오류 존재 여부를 확인하고 일찍 종료 할 수 있습니까? 또는 표준 if 진술 만 사용하십시오.가드 문을 사용하여 오류가 있음을 확인하십시오

endpoint?.getArray() { data, error in 
    guard error == nil else { 
     print(error!) 
     return 
    } 

    guard let data = data else { 
     print("no data") 
     return 
    } 

    print(data[0]) 
} 

편집

if 문을 사용하는 경우, 그것은 더 나은 읽을 수 있습니까? 당신이 나중에 코드에서 바운드 풀어 값을 사용하려는 경우

endpoint?.getArray() { data, error in 
    if error != nil { 
     print(error!) 
     return 
    } 

    guard let data = data else { 
     print("no data") 
     return 
    } 

    print(data[0]) 
} 
+0

그냥 IF를 사용하십시오. 이제 경비원의 활동 방식입니다. Guard는'if let'와 같은 선택 바인더입니다 – TheValyreanGroup

+0

실제로 할 수 있습니다. 'print' 다음에'return' 문을 넣으십시오. @TheValyreanGroup'guard' 또한 부울 표현식에 사용될 수 있습니다. – vadian

+0

무엇이 질문입니까? – matt

답변

2
  • 는 기본적으로 guard 거의 필수적이다.

  • true으로 평가 될 때 종료 직전에 포장 해제 값이 필요하면 if let을 사용하십시오.

  • 그 밖의 모든 것에 대해서는 취향에 관한 문제입니다.

-1

가드에는 "return"이 필요합니다. 이것은 사용자가 원하는 것입니다. 반환을 "잊어 버리면"if를 사용하는 것이 문제가 될 수 있습니다 ...

관련 문제