본문 바로가기

안드로이드/Kotlin

(28)
[Kotlin] 람다 표현식(lambda expression) 람다 표현식(lambda expression) 람다 표현식은 익명 함수를 지칭하는 용어이다. 람다 표현식을 통해 간결한 프로그래밍 코드 작성이 가능하다. 기본적으로 코틀린의 람다 표현식은 다음과 같은 형식이다. //버튼의 리스너를 등록하는 람다 표현식 val button:Button = ... button.setOnClickListener({ v -> doSomething() }) 함수를 호출할 때 마지막 인자가 함수인 경우 다음은 안드로이드에서 Java를 통해 AlertDialog를 만드는 예시이다. AlertDialog.Builder alert = new AlertDialog.Builder(this) ... .setPositiveButton("확인", new OnClickListener() { @Ov..
[Kotlin] 널 안정성(Null safety) 널 안정성(Null Safety) Java에서 개발하다 가장 많이 겪는 오류는 null pointer exception이다. Kotlin에서는 null값을 허용하기 위해선 자료형 뒤에 ?을 붙여야 한다. 엘비스 연산자(?:) 널 값을 허용하지 않는 ?가 없는 값 혹은 변수에 널 값이 반환되는 경우를 대비하여 처리하는 구문이 존재하는 연산자 val postal : PostalCode //null을 허용하지 않음 = findPostalCode("1600 Pkwy") ?: PostalCode.NONE 위의 경우 findPostalCode는 null을 반환할 수도 있는 함수이다. null이 반환되지 않을 경우 적절한 PostalCode 값이 대입되고, null을 반환할 경우 PostalCode.NONE을 대입한..
[Kotlin] Java와의 차이점 2 자료/자료형의 확인 및 변환 객체의 값 검사(==) 객체의 동일성 검사(===) 자료형 확인(is) 자료형 변환(as) Java의 경우 객체의 값을 검사할 시 equals() 메서드를 사용하고, 동일성 검사는 반대로 ==를 사용한다. 자료형 확인 is 연산자의 경우 Java의 instanceOf와 동일하다. 자료형 변환의 경우 Java에서는 (자료형) variable과 같이 사용하지만, Kotlin에서는 variable as 자료형과 같이 사용한다. 흐름 제어 if-else 문 Java와 사용법은 동일하지만, Kotlin의 경우 값을 반환할 수 있다. val age:Int = 20 val ageRange: String = if(age>=10 && age=20 && age Log.d(TAG, "We hav..
[Kotlin] 개요, Java와의 차이점 1 Kotlin Jetbrain에서 Java를 대체하기 위해 만든 언어로 아래와 같은 특징이 있다 널 안정성 가변/불변 구분(var, val) 람다식 스트림 API 클래스 프로퍼티에 대해 getter/setter 제공 특이한 점은 Kotlin은 원시 타입을 모두 객체로 표현한다. 예를들어, 아래와 같이 객체(Int)로 선언한다. val foo : Int = ... 이렇게 표현할 경우 비효율적일거 같지만, 컴파일 과정에서 가장 효율적인 타입으로 변화된다. 위의 코드는 아래와 같이 표현된다. int foo = ... ; Java와의 비교 배열 Java의 경우 아래와 같이 배열 자료형이 별도로 존재한다. int[] num = new int[]{1,2,3}; 하지만, Kotlin의 경우 Array 객체로 표현한다...