코틀린에서 변수변수 선언val 불변 변수 선언한 번 할당되면 변경 불가능var 가변 변수 선언값이 할당된 후에도 변경 가능타입의 생략초기화 식이 존재하는 경우 코틀린 컴파일러는 식을 분석해 변수 타입을 추론함val answer = 24 인 겨우 answer 는 Int 타입으로 추론타입의 명시필요한 경우 명시적 선언 가능val answer = Int = 42주의초기화 식이 없는 경우, 코틀린 컴파일러는 변수 타입 추론 불가타입 명시해야함fun main(args: Array) { val typed: Int
코틀린 프로퍼티읽기 전용 프로퍼티valprivate 필드public getter 자동 생성변경 가능한 프로퍼티varprivate 필드public setter getter 자동 생성클래스 안에서 프로퍼티 선언class Person( val name: String, var isMarried: Boolean )name : 읽기 전용isMarried : 변경 가능한 프로퍼티자바와의 호환성코틀린에서 선언한 프로퍼티자바코드에서도 사용가능코틀린 val자바의 getName()코틀린 var자바의 getName()setName()is 로 시작하는 불리언 속성isPropertyName() 으로 접근할 수 있다. public class Main { public static void main(String[] args) { Pe..
enum class Color { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET }enum 은 코틀린에서 소프트 키워드 로 취급class 앞에 사용될 떄만 특별한 의미를 갖는다.프로퍼티와 메서드가 있는 enum 클래스fun main() { println(Color.BLUE.rgb()); } enum class Color(val r: Int, val g: Int, val b: Int) { RED(255, 0, 0), ORANGE(255, 165, 0), YELLOW(255, 255, 0), GREEN(0, 255, 0), BLUE(0, 0, 255), INDIGO(75, 0, 130), VIOLET(238, 130, 238); fun rgb() = (r * 256 ..
fun main() { println(mix(Color.RED, Color.YELLOW)); } fun mix(c1: Color, c2: Color) = when (setOf(c1, c2)) { setOf(Color.RED, Color.YELLOW) -> Color.ORANGE setOf(Color.YELLOW, Color.BLUE) -> Color.GREEN setOf(Color.BLUE, Color.VIOLET) -> Color.INDIGO else -> throw Exception("Dirty color") }setOf는 소스를 까보면..public fun setOf(vararg elements: T): Set = if (elements.size > 0) elements.toSet() else em..
스마트 캐스트Expr 인터페이스 아래 식을 표현하는 클래스 계층을 둠.IDE 상에서 형광색이 보면해당 위치의 객체변수가 스마트캐스트 기능으로 Num 타입으로 캐스팅되었다는 것을 알 수 있다.코틀린은 묵시적으로 전부 캐스팅을 시도한다. Uploaded by N2T
스마트 캐스트Expr 인터페이스 아래 식을 표현하는 클래스 계층을 둠.IDE 상에서 형광색이 보면해당 위치의 객체변수가 스마트캐스트 기능으로 Num 타입으로 캐스팅되었다는 것을 알 수 있다.코틀린은 묵시적으로 전부 캐스팅을 시도한다. Uploaded by N2T