Vintage appMaker의 Tech Blog

[kotlin 배우기 github] 22. closure 2 본문

강좌, 연재/앱으로 배우는 kotlin

[kotlin 배우기 github] 22. closure 2

VintageappMaker 2020. 11. 19. 09:48
  1. kotlin에서 클로저를 사용하여 객체를 넘길 때에는 확장함수를 사용한다.
  2. 확장함수는 어떤 형식이 되던 관계없다. 호출만 되면 된다.
  3. 확장함수를 실행함과 동시에 같은 메모리 공간을 공유할 수 있다.
  4. 확장함수가 실행되면 클로저를 생성하는 함수명 { 파라메터 -> 원하는 코딩}으로 진입하여 명령을 수행한다.
fun main(args : Array<String>){
    var obj = ani{
        crying();
        eat();
        nCount++;
    }

    println("증가된 숫자는 ${obj.nCount} 입니다.");

    ani2 {
        // 확장함수를 호출한 파라메터
        넘겨진숫자값 ->
        crying();
        eat();
        println(" 넘겨진숫자값 + 1 = ${ 넘겨진숫자값 + 1 }  입니다.")
    }

}

// closure 활용
// 넘겨질 객체 Animal.() 와 같이
// 확장함수를 파라메터로 넘긴다
fun ani(확장함수: Animal.() -> Unit) : Animal{
    var ani = Animal();
    var count = 0;


    // 확장함수가 실행되어야 한다.
    ani.확장함수();
    return ani;
}

// 넘겨질 객체 Animal.() 와 같이
// 확장함수를 파라메터로 넘긴다.
// 1개의 숫자를 넘긴다.
fun ani2(확장함수: Animal.(Int) -> Unit) : Animal{
    var ani = Animal();

    // 확장함수가 실행되어야 한다. 숫자를 넘겼다.
    ani.확장함수(3);
    return ani;
}

class Animal{
    open var nCount = 0;
    fun crying() = println("$this>> 아흥");
    fun eat()    = println("$this>> 우걱우걱");
}

💻 Online IDE → 웹에서 예제실행

 

 

Kotlin Playground: Edit, Run, Share Kotlin Code Online

 

play.kotlinlang.org

 

 

 

kotlin 배우기 - github 예제 - Google Play 앱

안드로이드 개발 공식언어로 kotlin이 추가되었습니다. 안드로이드 개발자 입장에서는 배워야 하지만, 그것도 시간과 노력이 필요해서 쉽지가 않습니다. 그런 개발자들을 위해 kotlin의 필수사항

play.google.com

 

Comments