본문 바로가기

Kotlin32

[코틀린] 함수형 프로그래밍 코틀린은 함수형 프로그래밍, 객체 지향 프로그래밍을 모두 지원하는 다중 패러다임 언어 코드가 간략화되고 테스트나 재사용성이 더 좋아지고 개발 생산성 늘어남 ​ 함수형 프로그래밍 순수 함수를 작성하여 프로그램의 부작용을 줄이는 프로그래밍 기법 람다식 사용 고차 함수 사용 ​ 순수함수 같은 인자에 대하여 항상 같은 값 반환 함수 외부의 어떤 상태도 바꾸지 않음 스레드에 사용해도 안전 코드 테스트 쉬움 ​ 람다식 ( -> ) 람다 대수에서 유래 이름이 없는 함수 (익명 함수) 2개 이상의 입력 -> 1개의 출력 {x, y -> x + y} 고차 함수 다른 함수를 인자로 사용하거나 함수를 결과 값으로 반환 fun main() { println(highFunc({x,y -> x + y}, 10, 20)) } fu.. 2020. 9. 18.
[코틀린] 함수 선언 및 사용 1. 함수 기본 선언 fun sum(a : Int, b : Int) { return a+b } 2. 함수 내 코드가 한줄 일 때 간략하게 선언 fun sum(a : Int, b : Int) = a + b 3. 함수 파라미터 default 값 지정 fun sum(a : Int = 2, b : Int = 1) = a + b fun main() { println(sum()) // 결과 : 3 } fun sum(a : Int = 2, b : Int) = a + b fun main() { println(sum(b = 1)) // 결과 : 3 } 2020. 9. 18.
[코틀린] Safe call과 non-null 단정자 Safe Call (?.) nullable한 변수를 검사하여 null이면 NullPointerException 발생하지 않고 그냥 그대로 null을 출력(사용) var str1 : String? = null var len = str1?.length println(len) // 결과 : null 엘비스 연산자 (?:) 변수가 null인지 아닌지 검사하여 null이 아니라면 왼쪽 식을 그대로 실행하고 null이라면 오른쪽 식 실행 var str1 : String? = null var len = str1?.length?:-1 println(len) // 결과 : -1 non-null 단정자 (!!.) 변수에 할당된 값이 null이 아님을 단정하므로 null검사 없이 컴파일함 하지만 만약 null이 사용되었을 .. 2020. 9. 18.
[코틀린] 코틀린의 자료형 1. 기본형 자료형 (Primitive Data Type) 가공되지 않은 순수한 자료형 프로그래밍 언어에 내장 참조형보다 코드 수행시간 빠름 주로 스택 영역에 저장 EX) int, double, float, long ​ 2. 참조형 자료형 (Reference Type) 객체를 생성하고 동적 메모리 영역(힙)에 데이터를 둔 다음 이것을 참조하는 자료형 코틀린은 '참조형 자료형' 만 사용 참조형으로 선언된 변수는 성능 최적화를 위해 코틀린 컴파일러에서 다시 기본형으로 대체됨 EX) String, Date, Integer ​ 부호 있는 정수 자료형 자료형 크기 값의 범위 근사값 Long 8바이트 (64bit) - 2^63 ~ 2^63 - 1 ​ Int 4바이트 (32bit) - 2^31 ~ 2^31 - 1 2.. 2020. 9. 1.