일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 레트로핏 crud
- rxjava hot observable
- 안드로이드 유닛테스트란
- rxjava cold observable
- 안드로이드 유닛 테스트
- 서비스 vs 쓰레드
- 플러터 설치 2022
- 안드로이드 유닛 테스트 예시
- jvm 작동 원리
- 멤버변수
- 클래스
- 객체
- android ar 개발
- android retrofit login
- ar vr 차이
- 자바 다형성
- 스택 자바 코드
- 스택 큐 차이
- rxjava disposable
- jvm이란
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스 종류
- 2022 플러터 안드로이드 스튜디오
- Rxjava Observable
- 2022 플러터 설치
- 안드로이드 라이선스
- ANR이란
- 큐 자바 코드
- 안드로이드 os 구조
- 서비스 쓰레드 차이
- Today
- Total
나만을 위한 블로그
[Kotlin] 범위(range)란? in 연산자 사용법 본문
바로 이전 글이 코틀린의 for 반복문에 대한 글이었는데, 이 for문과 같이 사용할 수 있는 범위(range)라는 요소가 있다.
코틀린 공식 홈페이지에서 말하는 범위는 아래와 같다.
https://kotlinlang.org/docs/ranges.html#range
range는 수학적 의미에서 닫힌 간격을 정의한다. range는 둘 다 범위에 포함된 두 끝점(endpoint) 값으로 정의된다. range는 비교 가능한 유형(type)에 대해 정의된다. 순서가 있으면 임의의 인스턴스가 지정된 두 인스턴스 사이의 range에 있는지 여부를 정의할 수 있다. range에 대한 주요 연산은 일반적으로 in 및 !in 연산자의 형태로 사용된다. 클래스의 range를 만들려면 범위 시작 값에서 rangeTo()를 호출하고 마지막 값을 인수로 제공한다. rangeTo()는 종종 ".."연산자 형식으로 호출된다
아래는 range를 사용한 간단한 예제다.
fun main() {
// 0~10까지 시작, 끝을 포함하는 범위 정의
val myRange : IntRange = 0..10 // 커스텀 범위를 반복하는 for문 // for (i in myRange) println("i : $i")
// for문 안에서 범위 정의 가능
for (i in 0..10) println("for문으로 range 반복 : $i")
}
range의 종류는 위 코드에 사용된 IntLange와 CharRange, LongRange, UIntRange, ULongRange가 있으니 필요한 범위를 골라 사용하면 되겠다.
추가로 ".." 연산자 뿐 아니라 until이라는 연산자도 있는데 둘을 비교해보면 아래와 같다.
fun main() {
// 인덱스 순환을 위한 범위 생성 시 .. 대신 until 함수를 쓰면 마지막 값을 포함하지 않는 범위 생성이 가능하다
val zeroToFive : IntRange = 0..5
val zeroToFour : IntRange = 0 until 4
for (i in zeroToFive) println("i2 : $i")
for (i in zeroToFour) println("i3 : $i")
}
// i2 : 0
// i2 : 1
// i2 : 2
// i2 : 3
// i2 : 4
// i2 : 5
// i3 : 0
// i3 : 1
// i3 : 2
// i3 : 3
첫번째 반복문을 출력하면 0..5의 영향으로 0~5까지 출력된다. 그러나 until을 사용한 2번째 반복문 출력 시 0부터 3까지만 출력되는 걸 볼 수 있다.
until의 사전적 정의가 "~까지"라는 걸 생각하면 쉽게 이해할 수 있다.
범위를 출력할 수 있다면 범위 안에 어떤 요소가 있는지도 확인할 수 있을 것이다.
코틀린은 in 이라는 연산자로 이 작업을 수행할 수 있게 해준다. range와 같이 사용한다면 아래와 같이 사용할 수 있다.
fun main() {
val myRange : IntRange = 0..10
val foo: Boolean = 5 in myRange
val bar: Boolean = 5 !in myRange
println("foo : $foo")
println("bar : $bar")
}
코드를 복붙하고 실행하기 전에 어떻게 될지 생각해보자.
먼저 0~10까지의 값들을 포함하는 IntRange인 myRange를 선언했다. 그리고 foo 변수에는 myRange 안에 5가 있는지 확인하는 in 연산자로 확인한 다음 이를 boolean 변수에 저장했다. bar 변수에는 반대로 5가 없는지 확인하는 !in 연산자를 사용했다.
이 코드를 실행하면 foo에는 true, bar에는 false가 담긴 걸 볼 수 있다. 0~10까지의 숫자가 담긴 range에서 5라는 숫자가 존재하기 때문에 첫 번째 출력문은 true, 2번째 출력문은 false를 출력하는 것이다.
'개인 공부 > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린에서 제공하는 특수 클래스(Data Class, Sealed Class) (0) | 2022.03.27 |
---|---|
[Kotlin] null 처리 방법 정리 (0) | 2022.02.20 |
[Kotlin] 반복문(for) 사용법 정리 (0) | 2022.02.13 |
[Kotlin] companion object(동반 객체)란? (0) | 2022.01.31 |
[Kotlin] 생성자 정리 (0) | 2022.01.30 |