Kotlin Basics

Kotlin DEVELOPMENT IT
//숫자 형태의 문자열을 숫자로 바꿀 때
val intStr = "10"
val str = Integer.patseInt(intStr)

//일반 클래스간에 형변환 시 as 사용
open class Animal
class Dog : Animal()
val dog = Dog()
val animal = dog as Animal

//숫자형 자료끼리 형 변환
val a = 10L
val b = 20

val c = a.toInt()
val d = b.toDouble()
val e = a.toString()
//형 체크, JAVA의 instanceOf 에 해당ㅈ
val str = "hello"

if(str is String){
	println(str.toUpperCase())
}
//let() 함수
//fun <T, R> T.let(block: (T) -> R): R
val result = str?.let {
	Integer.parseInt(it)
}

//let 함수는 블록에 자기 자신을 인수로 전달하고 수행된 결과를 반환한다.
//인수로 전달한 격체는 it으로 참조하며, let을 ?.과 함꼐 사용하면 null값이 아닐 때만 실행하는 코드를
//위와 같이 나타낼 수 있다.
//위 코드는 str이 null이 아닐 경우에만 정수로 변경하여 출력한다.
//with() 함수
//fun <T, R> with(receiver: T, block T.() -> R): R
with(str){
	println(toUpperCase())
}
//with함수는 인수로 객체를 받고 블록에 리시버 객체로 전달한다.
//수행된 결과를 반환한다.
//리시버 객체로 전달된 객체는 this로 접근 가능하다.
//this는 생략이 가능하므로 위와 같이 작성이 가능하며, 안전한 호출이 불가하여 str이 null값이
//아닐 경우에만 사용해야 한다.
//apply() 함수
//fun <T> T.apply(block: T.() -> Unit): T
val result = car?.apply {
	car.setColor(Color.RED)
	car.setPrice(1000)
}
//apply함수는 블록에 객체 자신이 리시버 객체로 전달되고 이 객체가 반환된다.
//객체의 상태를 변화시키고 그 객체를 다시 반환할 때 주로 사용.
//run() 함수
//fun <R> run(block: () -> R): R
val avg = run {
	val korean = 100
	val english = 80
	val math = 50

	(korean + english + math) / 3.0
}

//객체에서 호출하는 방법은 객체를 블록의 리시버 객체로 전달하고 블록의 결과를 반환한다.
//안전한 호출을 사용할 수 있어서 with 함수보다 유용하다.

//fun <T, R> T.run(block: T.() -> R): R
str?.run {
	println(toUpperCase())
}

댓글 남기기