본문 바로가기

전체 글533

[코틀린] break와 continue에 라벨 사용 break,cotinue 에 라벨 사용 여러 반복문, 조건문을 중첩해서 사용하는 경우 라벨링을 통해서 break, continue문 사용할 때 어느 곳으로 향할지 알릴 수 있다. first@ for(i in 1..10) { println("처음") second@ for(j in 1..10) { println(j) break@first } } //결과 : 처음 1 first@ 라벨이 붙은 바깥 반복문이 멈춘다. continue도 마찬가지로 사용 ( first 라벨이 붙은 반복문이 해당 턴을 넘기고 진행한다) first@ for(i in 1..10) { println("처음") second@ for(j in 1..10) { println(j) break@second } } /*결과 : 처음 1 처음 1 처음.. 2020. 9. 18.
[코틀린] 함수 종류들 인라인 함수 (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.