새소식

STUDY/Android(Kotlin)

Kotlin 코틀린 / 안드로이드 개발을 위한 Kotlin 기초

  • -

✔️ Kotlin의 장점

프로젝트를 진행하며 오픈소스를 찾아보거나 유튜브 강의를 찾아보더라도 이미 많은 개발자들이 Kotlin을 통해 안드로이드 개발을 하고 있다는 것을 알 수 있었다. 코틀린 기초를 다시 공부하며 개발자들이 말하는 Kotlin의 장점을 모아보았다

 

1. 간결하고 효율적인 언어 (타입추론,  묵시적코드제공, 람다표현식지원)


 

Type Inference (타입추론)

변수를 선언할 때 꼭 필요한 경우가 아니라면 타입추론을 통해 생략이 가능하다

val text : String = "test box"
val text = "test box"      		//타입생략가능

var testList:Array<Int> = arrayOf(1,2,3,4,5)
var testList = arrayOf(1,2,3,4,5) 	//타입생략가능

 

Single-Expression Function (단일 표현식 함수)

  1) {}(body)가 한 줄이면 중괄호와 return문을 생략할 수 있다

  2) 리턴타입을 추론할 수 있다 => 리턴타입도 생략이 가능하다

      코드 양을 줄일 수 있고 읽기에도 좋아서 실무에서 가장 많이 사용하는 방법이라고 한다

fun sum(num1:Int, num2:Int):Int{
	return num1+num2)
}

//중괄호와 return문 생략
fun sum(num1:Int, num2:Int) : Int = num1+num2

//중괄호와 return문, return 타입까지 생략
fun sum(num1:Int, num2:Int) = num1+num2

 

Lambda Expression (람다식)

  1) 변수를 함수처럼 사용 가능 하다

  2) 자료형 생략이 가능하다

 

val sum : (Int, Int) -> Int = {x:Int, y:Int -> x+y}
sum(3,4)

//변수의 자료형을 생략
val sum = {x:Int, y:Int -> x+y}
//매개변수 자료형 생략
val sum : (Int, Int)->Int={x+y -> x+y}

    3) 안드로이드에서 setOnClickListener를 구현할 때의 간결화 예시

//자바에서 구현할 때
btnLogin.setOnClickListener(new View.OnClickListener() {
	@Override
    public void onClick(View view) {
    .......
    
    
//코틀린에서 구현할 때
btnLogin.setOnClickListener{
	event
}

 

2. 더 안전한 코드 (Null Safety)


자바로 안드로이드 개발을 할 때 가장 많이 보았던 NPE(NullPointerException).

Kotlin에서는 NullPointerException을 방어하기 위해 NullableNon-Null타입을 제공한다

 

 

❓안전 호출 연산자 - safe calls

코틀린에서 null값을 참조하기 위해선 ' ? '(safe calls)를 사용하면 된다

var str1 : String = "Hello Kotlin"
var str2 : String? = "Hello Kotlin"

str1 = null;   //error
str2 = null;   //OK

 

‼️ non-null 단언 연산자

null값이 없다고 단언해야 할 경우 ' !! ' 사용

*함부로 사용하지 않도록 주의

var number = readLine()!!.toInt()

 

: Elvis연산자

' ?: ' 의 왼쪽 객체가 non-null 이면 그 객체의 값이 리턴, null이라면 ' ?: ' 의 오른쪽 값을 리턴

val str : String? = "Hello Kotlin"
val nullstr : String? = null

println("str.length : $(str?.length ?: -1)")	---> 12
println("nullStr.length : $(nullStr?.length ?: -1)")	---> -1

 

3. 호환성

자바와 100% 호환이 된다. 코틀린에서 자바 기반 코드를 호출하거나 자바 기반 코드에서 코틀린을 호출 할 수 있다

 

 


 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.