규턴의 개발블로그
[Kotlin]코틀린 타입 시스템(코틀린 인 액션 6장)
backend/kotlin 2023. 10. 9. 18:05

Kotlin의 Null Null가능성 nullabilityt는 NPE를 피할 수 있게 만들어짐 -> NPE를 컴파일 시점에서 잡아줄 수 있도록 하기 위함 타입뒤에 ? 을 붙여 널 가능성을 표시 fun strLen(s:String) = s.length -> strLen(null) 호출(컴파일 에러 발생하지 않음)-> 런타임 에러발생 fun strLen(s:String?) : Int = if( s!= null) s.length else 0 -> strLen(null) 호출 -> 컴파일 에러 ?타입 시스템에서는 null체크 이후에만 변수.메서드() 를 호출 할 수 있음 참고 코틀린의 런타임에서는 예를들어 String, String? 모두 같은 타입의 객체임 모든 검사는 컴파일 시점에서 수행된다 -> 런타임 시..

[Kotlin] 람다로 프로그래밍(코틀린 인 액션 5장)
backend/kotlin 2023. 9. 17. 18:23

본 내용은 코틀린 인 액션을 읽고 저의 방식대로 정리한 글입니다. 그에따라 틀린 내용이 있을 수 있습니다. 틀린 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 람다식의 문법 책에서 말하길 람다는 값처럼 여기저기 전달할 수 있는 동작의 모음이라고 설명한다. {x: Int, y:Int-> x+y} //파라미터 부분 //본문 값처럼 여기저기 전달할 수 있다는게 잘 이해가 안됐는데, 변수에도 저장할 수 있다는 예시를 보고 이해가 되었다. val sum = {x:Int, y:Int -> x+y} println(sum(1, 2)) //람다가 값이라는 증거 val getAge= {p:Person -> p.age} people.maxByOrNull(getAge) 또한 코틀린에서는 함수 호출시 마지막 인자(파라미터)가..

article thumbnail
[Kotlin] 클래스, 객체, 인터페이스 (코틀린 인 액션 4장)
backend/kotlin 2023. 9. 3. 22:02

현재 들어간 회사에서는 코프링이 주 핵심 기술스택이기에 해당 기술스택을 배우고자 코틀린 인 액션 스터디를 진행한다. 아래의 내용은 코틀린 인 액션을 저의 방식으로 정리한 글입니다. 인터페이스 코틀린에서의 override는 자바와 달리 @Override annotaion을 사용하지 않음 인터페이스에 프로퍼티 선언이 가능하다. 자바와 동일하게 하나의 클래스에 대해서만 extends가 가능하며, 반대로 여러개의 인터페이스 가능 코틀린에서는 ":" 으로 상속, 인터페이스화 둘다 가능하다 kotlin에서의 default 메서드 구현은 자바와 좀 다르다 추가로 아래의 코드와 같이 두개의 같은 default method를 상속한다면, 반드시 override가 필수적이다 interface Clickable { fun ..