728x90
반응형

2023/08 8

when in kotlin

kotlin에서도 when 문을 쓸 수 있다. 다음은 독일어의 기수를 서수로 바꿔주는 when 문이다. val numbers = mapOf( 1 to "eins", 2 to "zwei", 3 to "drei", 4 to "vier", 5 to "fuenf", 6 to "sechs", 7 to "sieben", 8 to "acht", 9 to "neun", 10 to "zehn", 11 to "elf", 12 to "zwoelf", 13 to "dreizehn", 14 to "vierzehn", 15 to "fuenfzehn", 16 to "sechzehn", 17 to "siebzehn", 18 to "achtzehn", 19 to "neunzehn", 20 to "zwanzig" ) fun ordina..

Develop!/Kotlin 2023.08.23

오버로딩(OverLoading) in Kotlin

Java에서도 overloading을 사용하게 되면 같은 이름으로 다른 파라미터를 받으면서 사용할 수 있게 된다. 이렇게 함으로 추상화가 가능하게 되고 코드를 읽는 사람에게는 더 쉽게 읽히는 순 기능이 있다. 코틀린에서는 다음과 같이 사용 하게 된다. class Overloading() { fun f() = 0 fun f(n: Int) = n + 2 } fun overloading() { val o = Overloading() println(o.f()) println(o.f(11)) } 실행 결과는 아래와 같다. f라는 함수에 n이라는 파라미터를 받는 경우와 아닌 경우를 만들었다. 함수 이름과 파라미터 목록, 반환 타입을 다 합쳐서 함수의 시그니쳐 라고 하는데 함수의 파라미터를 다르게 만들면 overlo..

Develop!/Kotlin 2023.08.18

이름 붙은 인자, 가변인자 in kotlin

어떤 함수에 인자값을 전달할 때 인자의 개수들이 많다면 지금 넘기는 값이 어떤 인자에 해당하는지 알 기 어려운 경우가 많다. 그래서 클린 코드를 위해 가능하면 인자의 개수를 줄이는 행동들도 많이 한다. 이러한 어려움을 해결하기 위해 코틀린에서는 인자의 이름을 명시적으로 붙여서 전달할 수 있도록 만들어 둔 것 같다. fun color (red: Int, green: Int, blue: Int) = "($red, $green, $blue)" fun nameArgument() { println(color(1, 2, 3)) println( color( red = 76, green = 89, blue = 0, ) ) println(color(52, 34, blue = 0)) } color라는 함수에 red, gr..

Develop!/Kotlin 2023.08.16

확장함수 in kotlin

Java에서 기존에 만들어진 Class를 상속받아 메소드를 추가하고 사용하는 것을 보면서 좋은 아이디어라고 생각하고 그닥 불편하다는 생각을 못했는데 kotlin에서 하는 것을 보고 'Wow'라는 생각이 든다. 확장함수와 관련된 내용은 매우 짧다. 아래와 같이 간단하게 사용할 수 있다. fun String.singleQuote() = "'$this'" fun String.doubleQuote() = "\"$this\"" fun main() { println("Hi".singleQuote()) println("Hi".doubleQuote()) } String이란 Class를 상속 받아 새로운 함수를 넣고 싶으면 바로 정의해서 사용 하면 된다. 별도의 Class를 만들어 정의할 필요도 없다. 위의 내용을 실행..

Develop!/Kotlin 2023.08.14

Property in kotlin

Class 안에 있는 member 변수, 그리고 그 값을 get, set 하는 것과 관련하여 코틀린에서는 어떻게 처리되는지 확인할 수 있다. class Default { var i: Int = 0 get() { println("get ${field}") return field } set(value) { println("set(${value})") field = value } } fun defaultGetSet() { val d = Default() d.i = 2 d.i } fun main() { defaultGetSet() } kotlin에서는 get, set을 할 때 Java처럼 getXXX 식으로 하는게 아니라 해당 멤버변수(프로퍼티) 아래에 get, set 함수를 작성해 주면 된다. 그리고 해당 멤..

Develop!/Kotlin 2023.08.07

Set in Kotlin

Java에서도 중복된 값을 허용할 땐 List, Unique한 값만을 허용할 땐 Set을 사용한다. Kotlin에서도 그와 동일하게 사용할 수 있다. fun sets() { val intSet = setOf(1, 1, 2, 3, 9, 9, 4) println(intSet) println(9 in intSet) println(99 in intSet) println("9 contains : " + intSet.contains(9)) println("99 contains : " + intSet.contains(99)) print("[1, 9, 2] containsAll : ") println(intSet.containsAll(setOf(1, 9, 2))) print("[1, 9, 5] containsAll :..

Develop!/Kotlin 2023.08.02

가변인자 목록 in Kotlin

Java에서도 인자 값의 개수를 정해 놓지 않고 받을 경우 사용하는 문법이 있다. 가령 "String...str"와 같은 방식이다. Kotlin에서는 varargs 라는 예약어를 사용하면 된다. fun v(s: String, vararg d: Double) { println("String : $s") for (n in d) { print("$n ") } println(); } fun main() { v("abc", 1.0, 2.0) v("def", 1.0, 2.0, 3.0, 4.0) v("ghi", 1.0, 2.0, 3.0, 4.0, 5.0, 6.0) } varargs로 정의 된 인자값은 Array로 인식된다. kotlin에서 Array는 Java에서의 array와 같다. varargs로 정의하여 Arr..

Develop!/Kotlin 2023.08.02
728x90
반응형