Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 뷰컨
- indicator style
- 스크롤 인디케이터
- 아이폰
- SWIFT
- 런치 스크린
- FeedbackGenerator
- 레이아웃 사이클
- scroll indicator
- refreshControl
- 알뜰폰
- viewcontroller
- loadView
- 스위프트
- do try catch
- 이니셜라이저
- swift haptic
- exit()
- graceful termination
- git
- viewDidAppear
- viewDidDisappear
- viewWillDisappear
- 세븐모바일
- without Storyboard
- 스토리보드
- 깃헙
- 클로저
- IOS
- 우아한 앱종료
Archives
- Today
- Total
예거's Bicycle for the mind
[Swift] 큰 숫자를 다룰 때 underscore(_)를 이용해 자릿수 표기하는 법 본문
'456억 원' 이라는 큰 숫자를 Int 타입으로 써보자.
// 큰 숫자는 가독성(Readability)이 떨어진다.
var bigNumber: Int = 45600000000
print(bigNumber - 10000)
// 45599990000
이렇게 매우 큰 숫자는, 코드에서 가독성(Readability)이 떨어진다. 읽기가 불편하다. 시간이 조금 더 걸린다.
코드가 아니라, 일반적인 환경에서는 우린 콤마(,)를 활용해 숫자의 자릿수 구분을 할 수 있다.
456억 원은 45,600,000,000 원으로 표시할 수 있다.
하지만 코드에서는 숫자 사이에 콤마(,)를 넣을 수 없다.
// 숫자 사이에 콤마(,)를 넣을 순 없다.
var bigNumber: Int = 45,600,000,000
// error: expected pattern
코드에서 숫자 사이에 콤마(,)를 넣으면 컴파일 에러가 뜬다.
expected pattern, 즉 코드에서 Int 를 다루는 데 사용하는 표기법이 아니라는 에러다.
그렇다면, 코드에서는 어떻게 큰 수의 자릿수 표기를 할 수 있을까?
우리는 콤마(,) 대신 언더스코어(_) 를 자릿수 표기를 위해 사용할 수 있다.
// 코드에서는 큰 숫자의 자릿수 표시를 콤마(,) 대신 언더스코어(_)로 할 수 있다.
var bigNumber: Int = 45_600_000_000
print(bigNumber - 10_000)
// 45599990000 -> 언더스코어로 자릿수 표시를 했다고, 리턴값도 언더스코어가 달려 나오는 건 아니다.
위 예시와 같은 방법으로, 언더스코어(_)로 자릿수 표기를 할 수 있다.
코드가 작동할 때, 언더스코어는 '마치 없는 것처럼' 작동한다.
그 말은, 리턴값에는 언더스코어가 달려 나오지도 않고, 언더스코어가 이상하게 붙어 있더라도, 코드가 작동하는 데 문제는 없다는 말이다.
// 언더스코어(_)가 이상하게 들어가도 코드가 작동하는 데 문제는 없다.
var bigNumber: Int = 456_00000_000
print(bigNumber - 1_0_0_0_0)
// 45599990000
하지만 언더스코어를 엄한 곳에 표기해두면, 오히려 가독성을 해치기 때문에
정확하게 사용하는 것이 아니라면, 순정 그대로 쓰는 게 낫겠다는 생각이 든다.
* 참고) _ 의 영문 명칭은 underbar 가 아니라, underscore 가 정확한 명칭이다.
'iOS & Swift' 카테고리의 다른 글
[Swift] 구조체(struct)와 클래스(class)의 공통점과 차이점, 클래스 인스턴스의 identity 의 개념 (2) | 2021.10.28 |
---|---|
[Swift] NameSpace(네임스페이스)란 무엇이고, 어떻게 만들면 좋을까? (3) | 2021.10.17 |
[Swift] 고차함수 map, compactMap 의 차이와 활용법 (0) | 2021.10.10 |
[Swift] Nested Array (2차원 배열)에서 튜플을 이용해 다중 정렬하는 법 (sort, tuple, Closure) (1) | 2021.09.30 |
[Swift] Dictionary 의 옵셔널 반환에 대응하는 법 (default, nil 병합연산자) (1) | 2021.09.29 |
Comments