본문 바로가기
Kotlin

[Kotlin] 형변환과 배열

by doongjun 2020. 10. 16.

형변환이란 하나의 변수에 지정된 자료형을 호환되는 다른 자료형으로 변경하는 것을 말한다.

-명시적 형변환 : 변환될 자료형을 개발자가 직접 지정하는 것

-암시적 형변환 : 변수를 할당할 시 자료형을 지정하지 않아도 자동으로 형변환이 되는 것

 

코틀린에서는 암시적 형변환을 사용하지 않고 명시적 형변환을 사용한다.

 

명시적 형변환의 예를 들어 설명하자면

fun main() {
	var a:Int=100
    var b:Long=a
}

int형 변수 a를 long형으로 형변환을 하고자 할때 새로운 변수 b에 a를 그냥 삽입하면

Type mismatch 에러가 뜬다. 그래서 형변환 함수를 이용해 변경해주면 되는데 형변환함수들은 아래와 같다.

toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()

fun main() {
	var a:Int=100
    var b:Long=a.toLong()
}

위와 같은 방법으로 int형 변수 a의 형변환을 해보았다.

 

배열은 처음 선언했을 때의 전체크기를 변경할 수 없다는 단점이 있지만 한번 선언을 해두면 다른 자료구조보다 빠른 입출력이 가능하다는 장점이 있다.

배열 인스턴스는 arrayOf, arrayOfNulls 및 emptyArray 표준 라이브러리 함수를 사용하여 생성할 수 있다.

 

예를 들어 배열을 생성하기 위해서 arrayOf 라이브러리 함수를 이용해서 값을 전달하면 된다. 

즉, arrayOf(1,2,3,4,5) 가 array[1,2,3,4,5]를 만든다.

fun main() {
	var intArr = arrayOf(1, 2, 3, 4, 5) //1~5 값을 가지고 있는 배열 intArr 생성
    intArr[2]=8		//{1,2,8,4,5}
    
    println(intArr.get(2))
    println(intArr.get(4))
    println(intArr[2])
    println(intArr[4])
    
    intArr.set(2,800)	//{1,2,800,4,5}
    intArr.set(4,500)	//{1,2,800,4,500}
    
    println(intArr[2])
    println(intArr[4])
}

8

5

8

5

800

500

 

위의 코드를 보면 get과 set함수는 []로 바꾸어 사용할 수도 있다. 해당 함수의 역할은 다음과 같다.

get : 특정 인덱스의 엘리먼트를 리턴하며 인덱스 연산자[]로 호출할 수 있음

set : 특정 인덱스의 특정 값을 set하며 인덱스 연산자[]로 호출할 수 있음

 

값이 없는, 널값을 포함할 수 있는 배열을 생성하고 싶다면 arrayOfNulls 라이브러리 함수를 사용하면 된다.

fun main() {
    var nullArr = arrayOfNulls<Int>(4) //{null, null, null, null, null}
    println(nullArr[1])
}

null

 

빈 배열을 생성하고 싶다면 emptyArrayOf 함수를 사용한다.

 var emptyArray = emptyArray<String>() //String 타입의 빈 배열 생성

전달되는 인자가 없어 타입추론이 불가능하므로 함수 호출시 반드시 타입을 지정해줘야 한다.

'Kotlin' 카테고리의 다른 글

[Kotlin] 함수  (0) 2020.10.23
[Kotlin] 타입추론  (0) 2020.10.22
[Kotlin] 변수와 자료형  (0) 2020.10.15
Kotlin 이란?  (0) 2020.10.15

댓글