컬렉션 사용fun main() { hashSetOf(1, 7, 53).forEach { println(fizzBuzz(it)) } //public fun hashSetOf(vararg elements: T): HashSet = elements.toCollection(HashSet(mapCapacity(elements.size))) //@SinceKotlin("1.1") public actual typealias HashSet = java.util.HashSet arrayListOf("10", "11", "1001").forEach { println(it.toInt()) } //public fun arrayListOf(vararg elements: T): ArrayList = // if (elements...
디폴트 파라미터 사용joinToString 함수에서 디폴트 값을 가지는 파라미터 선언이 가능함fun joinToString( collection: Collection, separator: String = ", ", prefix: String = "", postfix: String = "" ): String { val result = StringBuilder(prefix) for ((index, element) in collection.withIndex()) { if (index > 0) result.append(separator) result.append(element) } result.append(postfix) return result.toString() }이런식으로 arrayListOf(1, 2, ..
확장 함수 정의 방법String 클래스에 lastChar 라는 확장 함수를 추가하려면?package strings fun String.lastChar(): Char = this.get(this.length - 1)this수신 객체를 의미합니다String 클래스의 인스턴스에 대해 호출가능fun main() { println("Kotlin".lastChar()) } //n"Kotlin" 이 수신 객체가 되며lastChar 확장함수는String 의 일부처럼 호출이 가능하다.특징캡슐화확장함수는 캡슐화를 깨지 않는다private 와 protected 는 접근할 수 없다.호환성면자바나 코틀린 등의 언어와 관계없이 JVM 언어로 작성된 클래스에 적용이 가능하다.유연성기존 클래스의 코드 변경 없이 새로운 메서드를 추가..
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 키워드가 필요가 없다.함수의 반환 타입은 = 뒤에 오는..