코틀린에서 함수 선언 및 반환 타입의 지정fun main(args: Array) { val val1 = 10 val val2 = 20 println("Max value is ${max(val1, val2)}") } fun max(a: Int, b: Int): Int { return if (a > b) a else b }둘중 큰값이 뭔지 구하는 함수이다.함수의 선언은 fun 으로함수 이름 max코틀린에서의 IF 의 처리if 가 식 으로 취급된다if 를 통해 삼항연산자와 같은 효과 가능식이 본문인 함수fun max(a: Int, b: Int): Int = if (a > b) a else bmax 함수가 if 식을 바로 반환이 가능함중괄호 , return 키워드가 필요가 없다.함수의 반환 타입은 = 뒤에 오는..
코틀린에서 변수변수 선언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