Kotlin/Function
-
[Kotlin] 가변인자 varargKotlin/Function 2021. 12. 25. 19:53
가변인자 vararg 변수 선언을 통해 인자 여러개를 대입할 수 있다. vararg를 정확하게 이해하여 Collection api를 보다 더 쉽게 이해하도록 하자. 가변인자를 이해하기 전에 필요한 코틀린의 배열 기초 내용을 정리하였다. 코틀린의 IntArray, ByteArray, DoubleArray, CharArray 등의 클래스 ( primitive타입명Array 클래스) -> JVM의 int[], byte[], double[], char[] 등의 primitive 타입 배열로 타겟팅된다. Library.kt 파일의 top-level 함수 타입ArrayOf 메서드를 사용하여 자바의 primitive 타입 배열인 코틀린 타입Array 객체를 생성한다. 코틀린의 Array 클래스 -> JVM의 객체 배..
-
[Kotlin] inline function 정리 1Kotlin/Function 2021. 12. 15. 11:11
inline function의 개념을 이해하기 위해서는 람다식, 고차함수, 함수타입 변수에 함수객체를 생성하는 법을 이해하고 있어야 한다. 설명하는 내용들은 아래의 포스팅 시리즈에 있다. [Kotlin/Function] - [Kotlin] 코틀린 함수와 함수형 프로그래밍 1 inline function의 선지식 조건이 많아 세편정도의 포스팅으로 기록할 것 같다. 람다식, 함수타입 변수에 대입된 함수, 고차함수에 전달될 인자의 함수 위의 세가지에 해당하는 함수는 실제로 Function0~ Function22 인터페이스를 구현한 객체로 만들어 진다. (함수의 파라메터 개수에 따라 Function0~ Function22) 또한 해당 함수를 호출하기 위해서는 객체의 invoke함수를 사용하는데, invoke함수..
-
[Kotlin] 코틀린 함수와 함수형 프로그래밍 3Kotlin/Function 2021. 9. 8. 20:47
[Kotlin/Function] - [Kotlin] 코틀린 함수와 함수형 프로그래밍 1 [Kotlin/Function] - [Kotlin] 코틀린 함수와 함수형 프로그래밍 2 함수 타입 / 수신 객체 지정 함수 타입 1. Function types 함수의 파라메터와 return형 (함수의 시그니쳐) 에 해당하는 것이 function type이다. val onClick: () -> Unit onClick의 function type 인자0개 return타입 Unit () -> Unit 일반변수선언시 타입을 선언하듯이, 함수타입변수선언시 Function type을 선언하는데 Function타입 선언시의 내용 리턴형이 Unit인 경우 생략되어서는 안된다 선택적으로 receiver type(수신 객체)을 가질 수..
-
[Kotlin] 코틀린 함수와 함수형 프로그래밍 2Kotlin/Function 2021. 9. 7. 23:39
[Kotlin/Function] - [Kotlin] 코틀린 함수와 함수형 프로그래밍 1 이전 포스팅에서 함수형 프로그래밍, 일급 객체, 일급함수, 고차함수, 람다표현식의 개념에 대해 알아보았다. 이번에는 코틀린 ref를 보고 문법 내용을 정리해보려고 한다. High-Order function 고차함수의 인자로 함수타입의 인스턴스를 (instance of function type) 전달해야한다. 밑의 이미지를 보면 함수타입을 인스턴스화 하는 방법이 있다. 그중 하나인 람다표현식부터 살펴보고 능력이 되는데까지 정리해보려고 한다. 람다표현식은 고차함수에서 인자를 전달하는 목적으로 폭넓게 사용된다. 1. 람다 표현식 { } 은 항상 중괄호로 둘러져있어야 한다. { x: Int, y: Int -> x + y } ..
-
[Kotlin] 코틀린 함수와 함수형 프로그래밍 1Kotlin/Function 2021. 9. 6. 17:34
코틀린은 객체지향 프로그래밍 + 함수형 프로그래밍 언어이다. (참고-함수형프로그래밍이란) https://mangkyu.tistory.com/111 프로그래밍 언어의 함수가 일급 시민(일급 객체)으로 다뤄진다면 일급 함수를 가지고 있는 언어이다. https://choheeis.github.io/newblog//articles/2020-12/kotlinHigherOrderFunctionAndLambda 일급 객체의 특징 1. 일급 객체는 함수의 매개변수가 될 수 있다. 2. 일급 객체는 함수의 return값이 될 수 있다. 3. 일급 객체를 변수에(=) 값을 할당할 수 있다. 4. 일급 객체는 고유한 구별이 가능하다.(equaliy비교) 코틀린의 함수는 일급 함수이다-> 일급 객체의 특징을 만족한다. 1. ..
-
[Kotlin] Extension (Function,Property)Kotlin/Function 2021. 8. 16. 18:23
Extension Function 개인참고용 확장 함수 1. fun 클래스명.확장함수명(파라메터...): 리턴타입{ 구현 } nullable한 인스턴스도 받을 수 있는 확장함수의 선언 fun 클래스명?.확장함수명(파라메터들): 리턴타입{ 구현 } 2. 조상,자손간의 메서드 오버라이딩시 호출되는 메서드와 다름 참조변수에 담긴 실제 인스턴스의 메서드가 호출되지 않고 참조변수의 타입에 해당하는 메서드가 호출됨 3. 확장함수의 시그니쳐에 해당하는 함수가 클래스의 멤버 메서드로 이미 존재하는 경우 선언한 확장함수가 아닌 멤버 메서드가 호출됨 다른 시그니쳐로 오버로딩에 해당하는 확장함수를 정의가능 4. Extension Function의 선언은 Top-level에서 하므로 패키지에 소속 접근제한자가 어떻게 설정되냐..