[kotlin] 코틀린에서의 데이터 타입 변환 함수

코틀린은 정적 타입 언어로, 변수의 데이터 타입을 명시해야 합니다. 때로는 서로 다른 데이터 타입 간에 값을 변환해야 할 때가 있습니다. 이때 코틀린은 다양한 내장 함수들을 제공하여 데이터 타입 변환을 쉽게 처리할 수 있습니다.

1. toInt(), toLong(), toFloat(), toDouble() 등의 함수

코틀린에서는 기본적인 숫자 타입 간의 변환을 위해 toInt(), toLong(), toFloat(), toDouble() 등의 함수를 제공합니다. 이 함수들은 원하는 데이터 타입으로 값이 변환되며, 필요한 경우 데이터 손실이 발생할 수 있습니다.

val number: Int = 10
val longNumber: Long = number.toLong()
val floatNumber: Float = number.toFloat()
val doubleNumber: Double = number.toDouble()

위의 코드에서 number 변수의 값을 각각 Long, Float, Double 타입으로 순차적으로 변환한 예시입니다.

2. toString() 함수

Kotlin에서는 모든 객체가 toString() 함수를 갖습니다. 이 함수를 사용하면 객체를 문자열로 변환할 수 있습니다. 기본적으로는 객체의 클래스 이름과 해시 코드가 문자열로 반환됩니다. 그러나 개발자는 toString() 함수를 재정의하여 원하는 형식으로 객체를 문자열로 변환할 수 있습니다.

data class Person(val name: String, val age: Int)

val person = Person("John", 26)
val personString = person.toString()

println(personString) // 출력: "Person(name=John, age=26)"

위의 코드에서 Person 클래스는 toString() 함수를 재정의하여 객체의 속성을 포함한 형식으로 문자열을 반환합니다.

3. toList(), toSet(), toMap() 함수

Kotlin에서는 배열이나 컬렉션을 다른 형태로 변환하기 위해 toList(), toSet(), toMap() 등의 함수를 제공합니다.

val array = arrayOf(1, 2, 3, 4, 5)
val list = array.toList()
val set = array.toSet()
val map = array.associateWith { it * 2 }

println(list) // 출력: "[1, 2, 3, 4, 5]"
println(set) // 출력: "[1, 2, 3, 4, 5]"
println(map) // 출력: "{1=2, 2=4, 3=6, 4=8, 5=10}"

위의 코드에서는 arrayOf() 함수를 사용하여 배열을 생성한 후, toList(), toSet(), toMap() 함수를 사용하여 각각 List, Set, Map으로 변환한 예시입니다.

4. parseXXX() 함수

Kotlin에서는 문자열을 다른 데이터 타입으로 변환하기 위해 parseXXX() 함수를 제공합니다. 예를 들어, 문자열을 정수로 변환하는 toInt(), 실수로 변환하는 toDouble() 함수와 같은 기능을 제공합니다.

val numberString = "10"
val number = numberString.toInt()

println(number) // 출력: 10

위의 코드에서 numberString 변수는 문자열 “10”을 저장하고 있습니다. 이를 toInt() 함수를 사용하여 정수로 변환한 결과인 number 변수에 저장합니다.

결론

코틀린은 다양한 데이터 타입 간에 값을 변환하기 위한 다양한 함수들을 제공합니다. toInt(), toLong(), toFloat(), toDouble() 함수를 사용하여 숫자 타입 변환을 할 수 있으며, toString() 함수를 사용하여 객체를 문자열로 변환할 수 있습니다. 또한, toList(), toSet() 함수를 사용하여 배열이나 컬렉션을 다른 형태로 변환할 수 있으며, parseXXX() 함수를 사용하여 문자열을 다른 데이터 타입으로 변환할 수 있습니다.

참고 문서: