Study OR Book9 [이펙티브 코틀린] 아이템17: 이름 있는 아규먼트를 사용하라 코드에서 아규먼트의 의미가 명확하지 않은 경우가 있다. 아래 코드에서 | 가 의미하는 바에 대하여 논란이 없을까?val text = (1..10).joinToString("|")만약 joinToString에 대하여 잘 알고 있다면, 구분자(seperator)를 의미한다는 것을 알 수 있겠지만모른다면, 이를 접두사(prefix)나 그 외 다른 것으로 생각 할 수도 있다. 따라서 명확하지 않을 수 있는 문제가 있다.이 문제를 해결하기 위해서는 아래은 방법으로 수정이 가능하다.// 아규먼트를 사용하는 방법val text = (1..10).joinToString(seperator = "|")// 변수를 사용하여 의미를 명확하게 하는 방법 val seperator = "|"val text = (1..10).joi.. 2025. 1. 8. [이펙티브 코틀린] 아이템7: 결과 부족이 발생할 경우 null 또는 Failure를 사용하라 핵심 개념문제 상황우리가 구현한 함수가 항상 원하는 결과를 준다면 좋겠지만 그렇지 않은 경우도 있을 것이다.책에서 들었던 몇가지 예시는 아래와 같다.서버에서 데이터를 가져오려고 했지만 실패조건에 맞는 데이터를 찾지 못했거나 형식이 맞지 않음이 경우를 처리하는 방법은 두 가지가 있다.결과 부족을 처리하는 두 가지 방법1. null 또는 Failure 반환null: 결과가 없음을 나타내기 위해 간단하게 null을 리턴한다.Failure: sealed class를 사용해 실패 상태를 명확하게 표현한다.예를 들어 Success와 Failure 클래스를 사용하여 성공과 실패를 구분한다.장점: Failure를 사용하면 실패 원인을 담을 수 있고, when을 통해 명확하게 상태를 분리하여 처리할 수 있다.단점: nu.. 2024. 12. 18. [이펙티브 코틀린] 아이템3: 최대한 플랫폼 타입을 사용하지 말라 코틀린의 주요 기능 중 하나는 Null-Safety 이다.코틀린은 Null-Safety 매커니즘으로 인해 NPE(Null Point Exception)을 찾아보기 힘들다.Java에서 Exception의 많은 부분을 차지한 NPE은 코틀린의 Null-Safety 를 만나 대부분 제거 되었다.하지만 Java, C와 같이 Null-Safety 가 지원되지 않는 언어와의 연결에서는 이러한 메커니즘으로 NPE를 완벽하게 보호할 수 없다. 1. 플랫폼 타입코틀린에서는 Java, C 에서 넘어온 데이터 타입을 특수하게 처리하는데, 이러한 타입을 플랫폼 타입이라고 한다.플랫폼 타입은 String! 처럼 타입 이름 뒤에 ! 기호를 붙여서 표기한다. 플랫폼 타입: 다른 프로그래밍 언어에서 전달되어 nullable인지 아.. 2024. 12. 11. 이전 1 2 다음