Kotlin
-
[ Kotlin ] return, break, continue문Kotlin 2020. 12. 9. 16:56
이 글은 부스트코스에서 코틀린 강의를 들으며 정리한 글 입니다 Index return break continue retrun ^ return으로 Unit 반환 람다식에서 return 사용하기 람다식 함수 외부의 함수까지 빠져 나가 비지역 반환이 일어난다.따라서 아래의 코드에서 아무것도 출력되지 않는다. 람다식에서 라벨과 함께 return 사용하기 인라인(inline)으로 선언되지 않은 람다식 함수에서 return을 사용하는 경우, 그냥 사용할 수 없고 라벨(@label) 표기와 함께 사용해야 한다. label 이란 코드에서 특정한 위치를 임의로 표시한 것으로, @ 기호에 이름을 붙여서 사용한다. (라벨이름)@ : 람다식 블록의 시작 부분에 라벨을 지정 @(라벨이름) : 라벨을 사용한 블록의 끝부분을 지정..
-
[ Kotlin ] 조건문 / 반복문Kotlin 2020. 12. 4. 16:07
Index 조건문 ( if ~ else ) 범위 연산자 ( in..범위 ) when 반복문 ( for / while / do~while ) 조건문 ( if ~ else ) ^ 범위 연산자 ^ 포함 여부를 확인하는 in 연산자와 두 개의 점(..)으로 구성된 범위(range) 연산자 when ^ 다른 언어에서 흔히 사용되던 switch~case를 대체하는 코틀린에서만 제공되는 문법 Java에서와 달리 break나 return 을 따로 적어주지 않아도 된다! 인자가 있는 경우 인자가 없는 경우 반복문 ^ for문 코틀린에서는 Java와 C++과 같은 세미콘론 표현식을 사용하진 않는다. while문 do ~ while문 untile 과 0..(input-1)이 똑같이 작동한다. 출처 1. 부스트코스 - 코틀린
-
[ 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 ] 람다식 ( Lambda )Kotlin 2020. 8. 4. 15:07
이 글은 부스트코스에서 코틀린 강의를 들으며 정리한 글 입니다 Index 변수에 지정된 람다식 람다식과 고차 함수 호출하기 값에 의한 호출 이름에 의한 호출 참조에 의한 호출 매개변수 개수에 따른 람다식 구성 매개변수가 없는 경우 매개변수가 1개인 경우 매개변수가 2개 이상인 경우 일반 매개변수와 람다식 매개변수를 같이 사용하는 경우 두 개 이상의 람다식을 매개변수로 가진 경우 변수에 지정된 람다식 ^ 람다식 표현의 예 ( 자료형 생략 ) 람다식을 표현할 경우, 위의 코드와 같이 자료형을 생략할 수 있습니다. 만약 선언 자료형과 매개변수 자료형이 모두 생략되어 있다면 추론이 불가능하여 Error가 발생합니다. // 추론이 불가능한 예 val multi = { x, y -> x * y } 마지막 표현식 반..
-
[ Kotlin ] 함수형 프로그래밍Kotlin 2020. 8. 3. 17:59
Index 함수형 프로그래밍 순수 함수 일급 객체 람다식 고차함수 Kotlin은 함수형 프로그래밍(FP: Functional Programming)과 객체 지향 프로그래밍(OOP: Object-Oriented Programmin)을 모두 지원하는 다중 패러다임 언어입니다. 함수형 프로그래밍 ^ 함수형 프로그래밍은 순수 함수를 하용하자는 것에서 출발했습니다. 순수 함수를 조합해 상태 데이터 변경이나 부작용이 없는 루틴을 만들어 내며 이름 없는 함수 형태의 하나인 람다식을 이용해 함수를 변수처럼 매개변수, 인자, 반환값 등에 활용하는 고차 함수를 구성해 생산성을 높인 프로그래밍 방법입니다. 함수형 프로그래밍의 장점 프로그램을 모듈화 하여 디버깅이나 테스트가 쉽습니다. 간략한 표현식을 사용해 생산성이 높습니다..
-
[ Kotlin ] 함수Kotlin 2020. 8. 3. 15:53
함수 함수의 선언 fun 함수 이름([변수 이름 : 자료형, 변수 이름 : 자료형...]) : [반환 값의 자료형] { 표현식... [ return 반환 값 ] } fun sum(a: Int, b: Int): Int { return a + b } 매개변수는 콤마(,)를 이용하여 여러 개를 지정할 수 있고 콜론(:)을 이용하여 자료형을 명시해 주어야 합니다. 만약 반환 값이 있는 경우 반환 값의 자료형도 반드시 명시해야 합니다. 반환 값이 없는 경우 자료형의 표기를 생략해도 되고 Unit으로 지정해도 됩니다. 간략하게 함수 선언하기 위에서 예시로 둔 함수는 좀 더 간략하게 표현할 수 있습니다. 위의 sum 함수와 같이 매개 변수로 들어온 값으로 연산해 바로 반환되는 함수의 경우, 중괄호와 return 키워..
-
[ Kotlin ] 자료형 - 비교, 검사, 변환Kotlin 2020. 7. 29. 18:25
변환 ( 캐스팅 ) Kotlin 에서는 암시적 형변환을 제공하지 않습니다. 위와 같이 코드를 작성하면 두 번째 줄에서 오류를 터트리고 컴파일이 되지 않습니다. 따라서 자료형 변환을 해주어야 합니다. 자료형 변환 메서드 메서드 설명 메서드 설명 toByte() Byte 타입으로 변환 toFloat() Float 타입으로 변환 toLong() Long 타입으로 변환 toInt() Int 타입으로 변환 toChar() Char 타입으로 변환 toShort() Short 타입으로 변환 toDouble() Double 타입으로 변환 toString() String 타입으로 변환 스마트 캐스트 컴파일러가 개발자 대신 형 변환을 해주는 기능을 스마트 캐스트라고 부릅니다. 예를 들면, 만약 어떤 값이 정수일 수도 있고..