본문 바로가기
반응형

2023년 이전/kotlin29

kotlin - 널이 될수 있는 타입(?), 안전 호출 연산자(?.), 엘비스 연산자(?:), 안전 캐스트(as?) [출처 - Kotlin In Action] [아래 내용들은 Kotlin In Action을 공부하면서 스스로 정리한 내용입니다] 코틀린은 자바에서 흔히 볼 수 있는 NullPointerException 오류를 피할 수있게 돕는 널 가능성이라는 코틀린 타입 시스템 특성이 있습니다. 즉, 타입 시스템에 널이 될 수 있는지 여부를 추가함으로써 컴파일러가 여러가지 오류를 컴파일 시 미리 감지해서 실행 시점에 발생 할 수 있는 예외의 가능성을 줄여줍니다. 널이 될 수 있는 타입 널이 될 수 있는 타입이란 프로그램안의 프로퍼티나 변수에 null을 허용하게 만드는 방법을 말합니다. 어떤 변수가 null을 허용한다면 이 변수는 NullPointerException이 발생할 수 있다는 의미입니다. 코틀린은 이런 null.. 2020. 3. 18.
kotlin - 수신 객체 지정 람다 [출처 - Kotlin In Action] [아래 내용들은 Kotlin In Action을 공부하면서 스스로 정리한 내용입니다] 자바의 람다에는 없는 코틀린 람다의 독특한 기능이 있습니다. 그 기능은 수신 객체를 명시하지 않고 람다의 본문 안에서 다른 객체의 메소드를 호출할 수 있게 하는 것인데, 이를 수신 객체 지정 람다라고 부릅니다. 여기서는 수신객체지정 람다를 활용하는 with와 apply에 대해 알아 보겠습니다. 이 두개는 여기서 간단한 설명을 확인 할 수 있습니다. with 다음 코드를 보면 fun alphabet(): String { val result = StringBuilder() for (letter in 'A'..'Z') { result.append(letter) } result.app.. 2020. 3. 10.
kotlin - 자바 함수형 인터페이스 활용 [출처 - Kotlin In Action] [아래 내용들은 Kotlin In Action을 공부하면서 스스로 정리한 내용입니다] 이직을 성공하고 쉬었다 다시 쉬었던 공부를 해야지 하면서 지난 번에 하던 kotlin 정리를 마저 합니다. 이번에 정리할 내용은 다음과 같습니다. 코틀린은 자바와 호환이 가능합니다. 그래서 자바 API에 코틀린 람다를 활용 하는 방법을 알아 보겠습니다. button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ //... } }); 위와 같이 Button에 Click 발생시 그 이벤트를 캐치할 수 있는 ClickListener를 등록 할 수 있습니다. 그리고 이때 위와 같이 자바는.. 2020. 3. 10.
kotlin - 시퀀스(Sequence) [출처 - Kotlin In Action] [아래 내용들은 Kotlin In Action을 공부하면서 스스로 정리한 내용입니다] 시퀀스(Sequence) 다음 코드를 봅시다 people.filter{ it.age== people.maxBy(Person::age)!!.age}.map(Person::name) 이 코드는 filter와 map을 연쇄 호출하고 있습니다. 이 연쇄 호출시 filter와 map이 각각이 리스트를 만들게 되며, 이는 리스틀르 2개를 만든다는 뜻이 됩니다. 즉, 하나는 filter의 결과를 담고, 하나는 map의 결과를 담게 됩니다. 원소가 몇개 없을 때는 문제가 안되지만, 원소가 수백개, 더 많아질수록 효율이 떨어지게 될 것입니다. 이를 효율적으로 사용하기 위해서 시퀀스를 사용하여 .. 2020. 3. 2.
반응형