타입 시스템
-
코틀린 타입 시스템 - 원시 타입Kotiln 2019. 7. 19. 17:44
코틀린 타입 시스템 - 원시 타입 원시 타입 자바는 원시 타입 (int 등) 과 참조 타입 (String 등) 을 구분하고 참조 타입이 필요한 경우 원시 타입 갑을 래퍼 타입으로 감싸서 사용한다. 코틀린은 원시 타입과 래퍼 타입을 구분하지 않으므로 항상 같은 타입을 사용한다. val i: Int = 1 val list: List = listOf(1, 2, 3)더 나아가 코틀린에서는 숫자 타입 등 원시 타입의 값에 대해 메소드를 호출할 수 있다. 대부분의 경우 코틀린의 Int 타입은 자바 int 타입으로 컴파일 된다. 컴파일이 불가능할 경우는 컬렉션과 같은 제네릭 클래스를 사용하는 경우뿐이다. null이 될 수 있는 원시타입 null 참조를 자바의 참조 타입의 변수에만 대입할 수 있기 때문에 null 이 ..
-
코틀린 타입 시스템 - null 관련Kotiln 2019. 7. 19. 16:05
null 가능성(nullability) 은 NullPointerException 오류를 피할 수 있게 돕기 위한 코틀린 타입 시스템의 특성이다. null이 될 수 있는 타입 변수의 타입 뒤에 ? 를 붙이면 null 참조를 저장할 수 있다는 뜻이다. var x: String? = null?. 안전한 호출 연산자 ?. 연산자는 null 검사와 메소드 호출을 한번의 연산으로 수행한다. var allCaps: String? = s?.toUpperCase()?: 엘비스 연산자 null 대신 사용할 디폴트 값을 지정할 때 사용한다. var str: String = s ?: "" // s가 null 이면 빈 문자열("")이다as? 안전한 캐스트 값을 대상 타입으로 변환할 수 없으면 null을 반환한다. var foo..