문제
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다.입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
func solution(_ s:String) -> Int {
return Int(s)!
}
!
를 붙이지 않으면,언래핑을 하지 않았더니 타입오류가 발생했다. 찾아보니 옵셔널 바인딩(if let이나 guard let)을 사용하거나, 강제 언래핑(!)을 통해 값에 접근해야 한다고 했다. 지금 문제는 제한 조건을 봤을 때, 변환이 실패할 가능성이 없는 상황이라 강제 언래핑이 더 간단하고 효율적이다.
Int(s)
의 반환 타입은 옵셔널(Int?)이므로, 변환된 값에 접근하기 위해 언래핑이 필요하다. 이때, s
가 항상 숫자와 부호만 포함하는 경우라 변환이 실패할 가능성이 없다면, 강제 언래핑(!)을 사용해도 안전하다. 강제 언래핑은 변환이 확실한 상황에서 코드가 간결해지는 장점이 있다.