함수
-
[ Kotlin ] 중위함수와 꼬리재귀 함수Kotlin 2020. 12. 3. 18:50
Index 중위함수 재귀 꼬리재귀 중위함수 ^ 중위 함수의 조건 1. 멤버 메서드 또는 확장 함수여야 합니다. 2. 하나의 매개변수를 가져야 합니다 3. infix 키워드를 사용하여 정의합니다. 재귀 ^ 재귀는 스택 영역을 이용하기 때문에 호출 횟수가 많아지면 문제가 발생할 수 있다. ( 스택오버플로우가 발생 할 수 있다 ) 코드를 복잡하지 않게 해야 한다. 꼬리 재귀 함수 ( Tail Recursive Function ) ^ 스택오버플로우를 예방할 수 있다. 스택에 계속 쌓이는 방식이 아닌 꼬리를 무는 형태로 반복한다. ( 자기 자신을 덮어씌우면서 작동 ) 무한루프에 빠지지 않게 조심해야 한다. 코틀린 고유의 tailrec 키워드를 사용해 선언한다. 출처 1. 부스트코스 - 코틀린
-
[ Kotlin ] 익명 함수( Anonymous Functions )와 인라인 함수( Inline Functions )Kotlin 2020. 8. 4. 16:36
익명 함수 ( Anonymous Functions ) 익명함수란 일반 함수이지만 이름이 없는 함수입니다. 람다식과 구성이 비슷하지만 익명 함수의 경우 return, break, continue가 사용 가능하고 람다식에서는 사용하기 어렵습니다. 따라서 조건식에 따라서 함수를 중단하거나 반환해야 하는 경우 일반 익명 함수로 사용해야 할 필요가 있습니다. 인라인 함수 ( Inline Functions ) inline함수는 함수가 호출되는 곳에 코드를 복사해 넣어 함수의 분기 없이 처리됩니다. 코드의 복사로 인해 분기가 없다는 점에서 속도를 높일 수 있지만 복사할 코드가 긴 경우 프로그램의 용량도 늘어나고 속도 향상도 되지 않을 수 있습니다. 따라서 inline 함수는 대게 짧은 코드로 작성되고 람다식 매개변수..
-
[ Kotlin ] 함수Kotlin 2020. 8. 3. 15:53
함수 함수의 선언 fun 함수 이름([변수 이름 : 자료형, 변수 이름 : 자료형...]) : [반환 값의 자료형] { 표현식... [ return 반환 값 ] } fun sum(a: Int, b: Int): Int { return a + b } 매개변수는 콤마(,)를 이용하여 여러 개를 지정할 수 있고 콜론(:)을 이용하여 자료형을 명시해 주어야 합니다. 만약 반환 값이 있는 경우 반환 값의 자료형도 반드시 명시해야 합니다. 반환 값이 없는 경우 자료형의 표기를 생략해도 되고 Unit으로 지정해도 됩니다. 간략하게 함수 선언하기 위에서 예시로 둔 함수는 좀 더 간략하게 표현할 수 있습니다. 위의 sum 함수와 같이 매개 변수로 들어온 값으로 연산해 바로 반환되는 함수의 경우, 중괄호와 return 키워..