본문 바로가기

코틀린30

[코틀린] 함수 종류들 인라인 함수 (Inline Function) 해당 함수가 호출되는 곳에 함수 본문의 내용을 모두 복사해 넣어 함수의 분기없이 처리 코드 성능 높임 내용이 대게 짧음 CPU, 메모리 비용 아낌 fun main() { temp(3,5) temp(2,7) //인라인 키워드가 없으면 2번 분기 } inline fun temp(a : Int, b : Int) { println(a) println(b) } 확장 함수 (Extension Function) 기존 클래스에 내가 원하는 멤버 메서드를 추가해서 확장시켜서 사용할 수 있는 기능 fun main() { var a = 3 a.plusmore(5) } fun Int.plusmore(other : Int) : Int { println("wow") return thi.. 2020. 9. 18.
[코틀린] 콜백 함수 콜백 함수 Caller(호출을 하는 객체)가 Callee(호출된 객체)에게로 넘겨준 다음 Callee가 콜백 함수를 호출하면 Caller에서 결과를 받게 된다. 특정 이벤트가 발생하기까지 처리되지 않다가 이벤트가 발생하면 즉시 호출되어 처리되는 함수 사용자가 아닌 시스템이나 이벤트에 따라 호출 시점 결정 비동기적으로 작업한 결과물을 받아올 때 주로 사용 안드로이드에서는 OnClickListener가 대표적인 콜백 객체. class Callee { fun calcuate(callback: (Int) -> (Unit)) { for (i in 0..10) { callback(i) } } } fun main() { var callee = Callee() var name = "Park" callee.calcuat.. 2020. 9. 18.
[코틀린] 함수형 프로그래밍 코틀린은 함수형 프로그래밍, 객체 지향 프로그래밍을 모두 지원하는 다중 패러다임 언어 코드가 간략화되고 테스트나 재사용성이 더 좋아지고 개발 생산성 늘어남 ​ 함수형 프로그래밍 순수 함수를 작성하여 프로그램의 부작용을 줄이는 프로그래밍 기법 람다식 사용 고차 함수 사용 ​ 순수함수 같은 인자에 대하여 항상 같은 값 반환 함수 외부의 어떤 상태도 바꾸지 않음 스레드에 사용해도 안전 코드 테스트 쉬움 ​ 람다식 ( -> ) 람다 대수에서 유래 이름이 없는 함수 (익명 함수) 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.