2015-01-17 1 views
2

Swift에서 선택 사항을 처리 할 때 옵션 뒤에있는 값에 액세스하는 두 가지 다른 방법이 있습니다 (있는 경우). 자동 옵션 랩을 해제하는 if let 블록을 사용할 수수동 unwrapping 대 let with with optionalals

if someOptional != nil { 
    doSomethingWithValue(someOptional!) 
} 
else { 
    //handle nil... 
} 

나 :

if let unwrapped = someOptional { 
    doSomethingWithValue(unwrapped) 
} 
else { 
    //handle nil... 
} 

어떤 이유로 다른 것이 바람직 이러한 옵션 중 하나입니다 당신은 수동 검사를 할 수 있습니까? 어느 쪽이 더 관용적입니까?

편집 : 가까운 투표에 대한 응답으로, 성능상의 이유로 든, 안전상의 이유로 든, 다른 어떤 이유로 든 우선 순위가 아닌 다른 이유로 하나를 사용해야하는 이유가 있는지 물어 봅니다. . !

전무

을 someOptional 경우 = 확인하기 전에 오히려 같은 의해 할당 한 것 :

+0

가능한 복제본 : http://stackoverflow.com/q/26692837/1271826. 주로 의견을 바탕으로 한 것입니다. – Rob

+0

네, 중복 된 것처럼 보입니다. 중복으로 투표하기로 결정했습니다. – Jumhyn

답변

0

나는 당신이 당신의 "수동 검사"에 한 줄의 코드를 놓쳤다 생각

someOptinal : <TypeOptional>? = anyFunctionThatProvidesAnOptional 

따라서 내 의견입니다 : 두 번째 방법 (소위 "선택적 바인딩")은 한 줄에 두 줄을 결합하여 더 짧고 더 좋은 방법입니다.

+1

음, 두 코드 스 니펫은'someOptional'이 이전에 할당 된 일부 선택적 유형의 변수라고 가정합니다. 두 번째 코드가 동일한 문제가없는 것을 보지 못하더라도 ... – Jumhyn