코틀린
-
[ 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 ] 람다식 ( Lambda )Kotlin 2020. 8. 4. 15:07
이 글은 부스트코스에서 코틀린 강의를 들으며 정리한 글 입니다 Index 변수에 지정된 람다식 람다식과 고차 함수 호출하기 값에 의한 호출 이름에 의한 호출 참조에 의한 호출 매개변수 개수에 따른 람다식 구성 매개변수가 없는 경우 매개변수가 1개인 경우 매개변수가 2개 이상인 경우 일반 매개변수와 람다식 매개변수를 같이 사용하는 경우 두 개 이상의 람다식을 매개변수로 가진 경우 변수에 지정된 람다식 ^ 람다식 표현의 예 ( 자료형 생략 ) 람다식을 표현할 경우, 위의 코드와 같이 자료형을 생략할 수 있습니다. 만약 선언 자료형과 매개변수 자료형이 모두 생략되어 있다면 추론이 불가능하여 Error가 발생합니다. // 추론이 불가능한 예 val multi = { x, y -> x * y } 마지막 표현식 반..
-
[ Kotlin ] 함수Kotlin 2020. 8. 3. 15:53
함수 함수의 선언 fun 함수 이름([변수 이름 : 자료형, 변수 이름 : 자료형...]) : [반환 값의 자료형] { 표현식... [ return 반환 값 ] } fun sum(a: Int, b: Int): Int { return a + b } 매개변수는 콤마(,)를 이용하여 여러 개를 지정할 수 있고 콜론(:)을 이용하여 자료형을 명시해 주어야 합니다. 만약 반환 값이 있는 경우 반환 값의 자료형도 반드시 명시해야 합니다. 반환 값이 없는 경우 자료형의 표기를 생략해도 되고 Unit으로 지정해도 됩니다. 간략하게 함수 선언하기 위에서 예시로 둔 함수는 좀 더 간략하게 표현할 수 있습니다. 위의 sum 함수와 같이 매개 변수로 들어온 값으로 연산해 바로 반환되는 함수의 경우, 중괄호와 return 키워..
-
[ Kotlin ] Null - 세이프콜, not-null, 엘비스 연산자카테고리 없음 2020. 7. 29. 17:34
Kotlin은 변수를 사용할 때 기본적으로 Null을 허용하지 않습니다. 만약 값이 할당되지 않은 변수를 사용하면 오류가 발생합니다. Null 할당을 허용하기 세이프콜 변수에 Null을 할당을 허용하려면 자료형 뒤에 물음표 기호(?)를 붙이면 됩니다. val a: Int? = null val b: String? = null Nullable한 변수를 선언하게 될 경우 NullPointerException(NPE) 오류가 발생할 수 있습니다. 따라서 Kotlin에서 Null이 할당되어 있을 가능성이 있는 변수를 검사하여 안전하게 사용할 수 있는 기능을 제공합니다. 이를 세이프콜(?)이라고 합니다. not-null 만약 세이프콜을 사용하지 않고 코드를 작성하고 싶으면 not-null 단정기호(!!)를 사용할 ..
-
[ Kotlin ] 자료형 - 논리 자료형과 문자형Kotlin 2020. 7. 29. 17:04
논리 자료형 ( Boolean ) 참, 거짓을 표현한다. 형식 자료형 크기 값의 범위 논리형 Boolean 1 bits true, false 문자 자료형 ( Char ) 문자 자료형의 값은 작은따옴표('')로 감싸 표현합니다. 컴퓨터에서는 문자를 저장할 때 a를 a로 저장하는 것이 아니라 아스키코드표나 유니코드표를 참고하여 a를 65로 저장합니다. 무형식 자료형 크기 값의 범위 문자 Char 2bytes ( 16bits ) 0 ~ 2^15-1 문자열 자료형 ( String ) 문자열은 Heap 메모리 영역의 String Pool이라고 부르는 공간에 문자열을 저장해 두고 이 값을 변수에서 참조합니다. 위와 같이 선언한 상황에서 str1 변수는 var로 선언되었기 때문에 참조 주소는 가변형으로 바꿀 수 있으..
-
[ Kotlin ] 자료형 - 정수형과 실수형Kotlin 2020. 7. 29. 16:29
Kotlin은 불변형(val)과 가변형(var)로 변수를 선언할 수 있습니다. 만약 사용할 변수의 값이 변경되지 않아야 된다면(immutable) val을 사용하고 변경될 수 있다면(mutable) var을 사용합니다. 변수를 선언할 때 [ 선언키워드 변수 이름: 자료형 = 값 ]의 형식으로 선언합니다. 하지만 컴파일러가 추론할 수 있는 type의 경우 [ 선언키워드 변수이름 = 값 ]으로 선언해도 컴파일러가 알아서 결정해줍니다. fun main() { val username : String = "moco" var count : Int = 3 // 컴파일리가 추론할 수 있는 type은 생략해도 된다. var age = 10 println("username : $username") } 기본형 자료형과 참조..