전체 글
-
[ 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 타입으로 변환 스마트 캐스트 컴파일러가 개발자 대신 형 변환을 해주는 기능을 스마트 캐스트라고 부릅니다. 예를 들면, 만약 어떤 값이 정수일 수도 있고..
-
[ 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") } 기본형 자료형과 참조..
-
[ Android ] Application ClassAndroid/Java 2020. 7. 12. 15:36
책에 있는 코드를 공부하던 중 Application class를 상속받은 class를 작성한 것을 보아서 Application class에 대해 공부해보았다. 틀린 내용이 있으면 댓글로 알려주시면 감사하겠습니다! Application Class란? Application의 상태를 유지하기 위한 기본 클래스입니다. 즉, Application class는 어느 컴포넌트(Activity, Service, intent 등)에서나 공유할 수 있는 전역 class를 의미합니다. Application을 상속받은 class는 공동으로 관리해야 하는 데이터를 작성하기에 적합합니다. Application class는 다른 subclass보다 먼저 인스턴스화 됩니다. 일반적으로 subclass Application을 필요로 ..