Kotlin
-
[Kotlin] vararg (Variable number of arguments) 가변인자Kotlin 2021. 5. 9. 23:30
vararg - 함수의 매개변수에 vararg를 붙이면 매개변수의 개수를 유동적으로 받을 수 있다. - 일반적으로 마지막 매개변수에 사용한다. fun testVararg(vararg str: String): Unit { for (s in str) { println(s) } } val array = arrayOf("red", "blue", "green") testVararg(*array) testVararg("red","blue","green") 함수의 매개변수로 배열 형태로 넘길 수 있으나, 갯수가 길어지면 번거롭다. 그러기에 이미 존재하는 배열을 넘기고자 할때는 * Seperate operator를 배열 앞에 prefix로 붙여 넘길 수 있다. Ref) kotlinlang.org/docs/functio..
-
[Kotlin] none,any,all,containsKotlin 2021. 3. 30. 01:07
Collection에서 많이 사용되는 함수에 대하여 알아보자. any - Collection에 적어도 1개의 element 가 있으면 return true val list = listOf("red", "yellow", "green", "banana") val result: Boolean = list.any { it == "banana" } println("list any result is ${result}") //true none - any랑 반대 - match 되는 element가 없을 때 return true val list = listOf("red", "yellow", "green", "banana") val resultNone: Boolean = list.none { it == "banana" }..
-
[Kotlin] Pair or MapKotlin 2021. 1. 24. 19:03
Kotlin의 Map과 Pair에 대하여 알아보자. Map - 코틀린의 Map은 key와 value로 구성되어있는 dictionary 형태라고 생각하면 된다. - key는 유니크한 값이며, 유니크한 key는 다른 key와 동일한 value를 가질 수 있으며, 정의된 key를 통해 삽입 삭제 또한 가능하다. - 코틀린의 Map은 Collection 인터페이스를 상속하고 있지 않지만, 코틀린의 collection type으로 Map은 지정되어있다. Map 생성 val maps = mapOf(1 to "one",2 to "two",3 to "three") Map을 생성하기 위한 mapOf은 stlib에서 아래와 같이 나와있다. /** * Returns a new read-only map with the spe..
-
[Kotlin] Data ClassKotlin 2020. 4. 28. 00:25
Kotlin Data Class 사용은 자주 했는데, 그 안에 어떤 메서드들이 숨어 있는지 잊고 살았던 것 같다. 이 번 포스팅으로 정리하고자 한다. Kotlin Data Class 어떻게 나왔음? 우리는 data를 담기 위하여 자주 data class 를 생성한다. 기존의 Java에서 Class 를 생성해 주기 위해서는 CRUD에 필요한 getter(), setter() 메서드가 필요했다. 그 외에도 여러 메소드가 필요했다. public class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { r..
-
[Kotlin]FoldRight && FoldKotlin 2019. 12. 27. 00:37
Kotlin의 FoldRight와 Fold 함수에 대하여 알아보자. 위 두 함수는 모두 Collection이나 List에서 사용이 가능하다. # FoldRight 사용 예제를 알아보기 앞서 FoldRight 원형을 살펴보자. 주석에 아주 친절하게 나와 있다. initial로 선언한 초기값에서 시작하며 operation을 적용하는데, 오른쪽에서 -> 왼쪽으로 진행된다는 뜻이다. //FoldRight val list = listOf(1, 2, 3, 4, 5) val sumTotal = list.foldRight(list.first(), { next, total -> println("next $next total $total") next + total }) println("sumTotal $sumTotal")..
-
[Kotlin] Reference and ReflectionKotlin 2019. 10. 22. 00:05
필자는 Method Reference에 관하여 종종 많이 접할 수 있다. 안드로이드 스튜디오에서도 객체에 접근하기 위하여 객체::변수명, 객체::함수명 이런식으로 접근하는 걸 볼 수 있다. 오늘은 Reference가 무엇인지 살펴보자. Property references class Person(val name: String, var age: Int) { fun present() = "I'm $name, and I'm $age years old" fun greet(other: String) = "Hi, $other, I'm $name" } fun main() { val reference = Person::name //methodReference println("reference $reference") va..
-
Kotlin in Action - LamdaKotlin 2019. 9. 24. 00:37
본 내용은 Kotlin in Action 책을 읽고 공부한 내용을 정리하는 포스팅입니다. 여러 Collection을 다루는 함수를 알아두면 원하는 data에 쉽게 접근할 수 있습니다. Filter : 컬렉션 함수를 이터레이션 하면서 주어진 람다에 각 원소를 넘겨 True를 반환하는 원소만 모은다. val list = listof(1,2,3,4) println(list.filter{it %2 ==0}) //[2,4] 결과는 컬렉션 원소 중에 Boolean값을 반환하는 Predicate로 , true의 조건을 만족하는 원소만으로 이뤄진 새로운 컬렉션이다. Map : 컬렉션의 원소에 주어진 람다를 적용하여 새 컬렉션을 만든다. val list = listof(1,2,3,4) println(list.map{it..
-
[Kotlin] Null SafetyKotlin 2019. 5. 31. 01:12
Kotlin의 매력 중 하나인 Null Safety에 대하여 정리해보자. ■ ? Null을 값을 가능케 하는 Null Safety이다. fun testNull(){ val nullableString : String? = null //널 허용 val notNullabeString : String = null //널 허용불가. } nullableString 변수는 String Type뒤에? 가 붙으면서 null 이 가능하다. nonNullableString 변수는 기존 자바 String이 같이 null이 불가능하다. ■ ?: Null 값을 대신할 수 있는 Elvis Operator 이다. fun main(){ val hi = "hi" val num = 12345 val elivis_String : Strin..