When 식에서 in 사용하기fun recognize(c: Char) = when (c) { in '0'..'9' -> "It's a digit!" in 'a'..'z', in 'A'..'Z' -> "It's a letter!" else -> "I don't know..." } fun main() { println(recognize('8')) } //It's a digit!when 식에서 in 을 사용해서 여러 범위를 한 분기로 저장이 가능합니다.비교가능한 클래스와 범위Comparable 인터페이스를 구현하는 클래스의 인스턴스를 사용하여 범위 생성가능함위 내용은 객체의 정렬관련한 내용이다.문자열의 알파벳 순서를 기준으로 범위를 만들고 in 으로 범위 내에 속하는지 검사한다.기존의 switch 문보다 더 ..
Map 에 대한 이터레이션fun main() { val binaryReps = TreeMap() for (c in 'A'..'F') { val binary = Integer.toBinaryString(c.code) // 'A'.code == 65 ==> 이진표현값으로 binaryReps[c] = binary // binaryReps.put(c, binary) } for ((letter, binary) in binaryReps) { println("$letter = $binary") } }자바에서의 TreeMap 과 구조가 거의 비슷합니다.해당 코드는 A ~ F 까지의 이진값을 맵구조에 저장합니다.트리맵은 map 구조의 키 에 정렬을 줄 수 있다는 장점이 있습니다리스트(List) 에 대한 이터레이션과 인덱..
코틀린에서 함수 선언 및 반환 타입의 지정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 ..