본문 바로가기
Kotlin

Kotlin - 기타기능(확장함수,형변환,형체크)

by 봄석 2019. 1. 3.

Kotlin - 기타기능(확장함수, 형변환, 형 체크)

유용한 기타 기능


- 확장 함수 : 원래 있던 클래스에 기능을 추가하는 함수

- 형변환 : 숫자형 자료형끼리 쉽게 형변환 가능

- 형 체크 : 변수의 형이 무엇인지 검사하는 기능

- 고차 함수 : 인자로 함수를 전달하는 기능

- 동반 객체 : 클래스의 인스턴스 생성 없이 사용할 수 있는 객체

- let() 함수 : 블록에 자기 자신을 전달하고 수행된 결과를 반환하는 함수

- with() 함수 : 인자로 객체를 받고 블록에서 수행된 결과를 반환하는 함수

- apply() 함수 : 블록에 자기 자신을 전달하고 이 객체를 반환하는 함수

- run() 함수 : 익명함수처럼 사용하거나, 블록에 자기 자신을 전달하고 수행된 결과를 반환하는 함수


확장 함수

코틀린은 확장 함수 기능을 사용하여 쉽게 기존 클래스에 함수를 추가할 수 있습니다. 

확장 함수를 추가할 클래스에 점을 찍고 함수 이름을 작성합니다. 확장 함수 내부에서는 이 객체를 this로 접근할 수 있고 이러한 객체를 리시버 객체라고 합니다. 아래는 Int 자료형에 짝수인지 아닌지를 알 수 있도록 isEven() 확장 함수를 추가한 예입니다.

fun Int.isEven() =this%2==0
 
var a= 5
var b= 6
 
println(a.isEven()) //false

println(b.isEven()) //true


자바에서는 기본 자료형에 기능을 추가하려면 상속을 받고 추가 메소드를 작성해야 했습니다.
String 클래스의 경우는 final로 상속이 막혀 있어 이 마저도 불가능 했었습니다.



형변환

숫자형 자료형 끼리는 to자료형() 메소드를 사용하여 형변환이 가능합니다.

var a=10L //long
var b=20  //Int
 
val c= a.toInt() //Long to Int
val d= b.toDouble()// Int to Double

val e= a.toString() //Long to String



숫자 형태의 문자열을 숫자로 바꿀 때는 자바와 마찬가지로 Integer.parseInt() 메소드를 사용합니다.

val intStr="10"

val str=Integer.parseInt(intStr)



일반 클래스 간에 형변환을 하려면 as 키워드를 사용합니다.

open class Animal
 
class Dog:Animal()
 
val dog=Dog()
 

val aminal=dog as Animal // dog를 Animal 형으로 변환




형체크

is 키워드를 사용하여 형을 체크 할 수 있습니다. 자바의 instanceOf에 대응합니다.

val str ="hello"
if(str is String){// str이 String 형이면
    println(str.toUpperCase())
}



댓글