Kotlin
-
[Kotlin] 익명객체와 옵저버 패턴Kotlin 2024. 3. 12. 23:34
이벤트를 수신 할 클래스를 kotlin 에선 listener 라고 부르고 이벤트를 전달하는 함수를 callback 함수 이라고 한다. 중간에 interface 를 만들어 서로 연결 짓는 다리 역활을 하며 그 후 컬백함수가 있는 클래스를 만들어 그 이벤트를 응답한다. 아직 완벽히 이해하진 못했지만 우선 이렇게 나는 이해했다.. 더 공부해봐야겠다. 일반 클래스를 통한 옵저버 패턴 fun main(){ EventPrinter().start() } interface EventListener{ fun onEvent(count:Int) } class Counter(var listener: EventListener){ fun count(){ for(i in 1..100){ if(i % 5 == 0) listener...
-
[Kotlin] ObjectKotlin 2024. 3. 12. 23:06
Object object는 인스턴스를 생성하지 않고 그 자체로 객체이기 떄문에 생성자는 사용하지 않는다 object로 생성된 객체는 최초 사용 시 자동으로 생성되며 이후에는 코드 전체에서 공용으로 사용될 수 있으며 프로그램이 종료되기 전까지 공통적으로 사용할 내용들을 묶어 만드는 것이 좋다. fun main() { println(Counter.count) Counter.countUp() Counter.countUp() println(Counter.count) Counter.clear() println(Counter.count) } object Counter{ var count = 0 fun countUp(){ count++ } fun clear(){ count = 0 } } Compaion Object ..
-
[Kotlin] 스코프 함수Kotlin 2024. 3. 12. 21:34
소코프 함수 함수형 언어의 특징을 좀더 편리하게 사용할 수 있도록 기본 제공하는 함수 apply 인스턴스를 생성한 후 변수에 담기 전에 초기화 할 때 사용 인스턴스를 생성하자마자 그 인스턴스에 참조연산자를 사용하여 apply 를 붙이고 중괄호로 람다 함수를 하나만들어 apply 의 scope 안에서 직접 인스턴스 속성과 함수를 참조 연산자 없이 사용이 가능하다 또한 apply 는 인스턴스 자신을 다시 반환하므로 이렇게 생성되자마자 조작된 인스턴스를 변수에 바로 넣어줄 수 있다. 이렇게 apply 를 이용하면 main 함수와 별도의 scope 에서 인스턴스의 변수와 함수를 조작하므로 코드가 깔끔해진다는 장점이 있다 fun main() { //apply : 인스턴스를 생성하자마자 그 인스턴스에 참조연산자를 ..
-
[Kotlin] 고차함수와 람다함수Kotlin 2024. 3. 12. 21:05
고차함수 함수를 마치 클래스에 만들어 낸 인스턴스처럼 취급해주는 방법이다 함수를 마라미터롤 넘겨 줄 수도 있고 결과값으로 반화 받을 수도 있는 방법이다 코틀린에서는 모든 함수를 고차함수로 사용 가능하다 fun a(str:String){ println("$str 함수 a") } // unit : 값이 없다는 형식 fun b(function:(String)->Unit){ function("b가 호출한") } fun main(){ b(::a) //고차 함수형태로 넘기려면 함수 이름앞에 콜론 :: 두개를 붙여준다 } 람다함수 람다 함수 자체가 고차함수이다 // unit : 값이 없다는 형식 fun b(function:(String)->Unit){ function("b가 호출한") } fun main(){ val..