Reduce와 wholeNumberValue

OwlCJ·2023년 4월 22일
0

학습 메모

목록 보기
5/5

Reduce 의 간편 표기

최근 프로그래머스등에서 코딩 문제들을 많이 풀어보면서 고차함수의 활용법에 익숙해져가는중인데

그 중에서 reduce를 .reduce(0, +) 와 같이 초기값과 기호만으로 작동을 정해줄 수 있다는 것을 깨달음.. 🫢

앞으로 reduce 말고도 map filter의 고차함수들을 잘 사용해서 코테를 잘 공략해봐야할듯!..

Character 타입이 숫자로 변형이 가능할시..

또한 String 타입을 for문을 통하여 한 문자씩 뽑게되면 타입이 Character형으로 나오게되는데 그럴때 만약 숫자형으로 표현이 가능한 Character형일 경우에 .wholeNumberValue 를 참조하면 Int형으로 바로 쓸수 있다는 사실..! (옵셔널 Int형 이기때문에 강제 언래핑 혹은 옵셔널 바인딩 등을 해줘야함)

Swift 공식문서를 보면 이렇게 되어있다.

wholeNumberValue

The numeric value this character represents, if it represents a whole number.

이 문자가 정수를 나타낼경우 갔다 쓰세요.. 굿🫢

그 동안에 코테를 보다보면 String 문자열에서 숫자형식의 문자를 추출해 Int로 변형을 해야하는 경우에 다른분들의 풀이를 참조해봐도 보통 이러한 방식을 사용하는 분들이 많았다.

return Int(String(character))	

과 같이 String형으로 한번 변환을 해주고 Int형으로 변환해서 사용해야하는데 (Character 형이 Int형으로 바로 변환이 안됨)

위의 wholeNumberValue를 쓰면 한번에 해결! 👏 알고나서는 아주 애용중이다.

공식문서를 보다가 새로 안 사실인데

let chars: [Character] = ["4", "④", "万", "a"]
for ch in chars {
    print(ch, "-->", ch.wholeNumberValue)
}
// Prints:
// 4 --> Optional(4)
// ④ --> Optional(4)
// 万 --> Optional(10000)
// a --> nil

위 와 같이 심지어 영문이 아닌 것들도 표현이 가능하다는 사실 오.. 숫자로 변환이 안될때는 nil이 온다하니 강제 언래핑은 확실한 순간에만 해야함..

profile
ios 개발자를 목표로 성장중입니다 🧐

0개의 댓글