[Kotlin] Kotlin 1.5 주요 변경점
Kotlin 1.5는 여러 새로운 기능과 개선 사항을 통해 개발자들에게 더욱 강력한 도구를 제공했습니다. 이번 포스트에서는 Kotlin 1.5의 주요 변경 사항을 자세히 살펴보겠습니다.
Kotlin 1.5의 주요 변경 사항
1. 안정적인 언사인드 정수 타입 (Stable Unsigned Integer Types)
Kotlin 1.5에서는 언사인드 정수 타입이 안정화되었습니다. UInt
, ULong
, UByte
, UShort
와 같은 언사인드 정수 타입이 이제 안정적으로 사용 가능하며, 비음수 정수 연산에 유용합니다. 이러한 타입들은 배열, 범위, 프로그레션 등에서도 사용할 수 있습니다.
val uInt: UInt = 42u
val uLong: ULong = 12345678901234567890uL
2. java.nio.file.Path
확장 함수
Kotlin 1.5에서는 java.nio.file.Path
에 대한 확장 함수가 추가되어, Kotlin 스타일로 비차단 Java IO를 사용할 수 있습니다. 이는 Kotlin에서 파일 경로를 보다 직관적으로 다룰 수 있게 합니다.
import kotlin.io.path.*
val path = Path("example.txt")
val lines = path.readLines()
3. 로케일에 독립적인 문자열 대소문자 변환 (Locale-Agnostic Case Conversion)
기존의 toUpperCase()
와 toLowerCase()
함수는 로케일에 민감했지만, 이제 로케일에 독립적인 uppercase()
와 lowercase()
함수가 도입되었습니다. 이는 플랫폼 로케일 설정에 관계없이 일관된 결과를 제공합니다.
val text = "kotlin"
println(text.uppercase()) // "KOTLIN"
4. Char
와 숫자 간의 변환 함수
Kotlin 1.5에서는 Char
와 숫자 간의 변환을 위한 명확한 함수들이 추가되었습니다. 이는 코드의 가독성을 높이고, 변환 과정에서 발생할 수 있는 실수를 줄여줍니다.
val charCode = 'A'.code
val char = Char(65)
5. String?.toBoolean()
의 엄격한 버전
기존의 String?.toBoolean()
함수는 문자열이 "true"일 때만 true
를 반환했지만, 이제 toBooleanStrict()
와 toBooleanStrictOrNull()
함수가 추가되어 보다 엄격한 변환을 지원합니다. 이는 잘못된 입력을 방지하는 데 유용합니다.
val isTrue = "true".toBooleanStrictOrNull() // null 반환
6. 새로운 수학 연산: floorDiv()
와 mod()
Kotlin 1.5에서는 floorDiv()
와 mod()
함수가 도입되어, 정수의 바닥 나눗셈과 모듈러 연산을 보다 직관적으로 수행할 수 있습니다.
val result = 7.floorDiv(3) // 2
val modulus = 7.mod(3) // 1
7. 새로운 컬렉션 함수: firstNotNullOf()
와 firstNotNullOfOrNull()
Kotlin 1.5에서는 컬렉션에서 첫 번째로 널이 아닌 값을 찾는 firstNotNullOf()
와 firstNotNullOfOrNull()
함수가 추가되었습니다. 이는 코드의 간결성과 효율성을 높입니다.
val list = listOf(null, "Kotlin", null)
val firstNonNull = list.firstNotNullOfOrNull { it }
Kotlin 1.5는 이러한 다양한 기능과 개선 사항을 통해 개발자들에게 더 나은 개발 경험을 제공합니다. 특히 안정적인 언사인드 정수 타입과 로케일에 독립적인 문자열 대소문자 변환은 코드의 안정성을 높이고, 다양한 플랫폼에서의 개발을 더욱 효율적으로 만들어 줍니다. Kotlin 1.5의 새로운 기능들을 프로젝트에 적용해 보시기 바랍니다!