[코틀린기초] 13. 코틀린 표준함수 run()

인자가 없는 익명 함수처럼 동작하는 형태와 객체에서 호출하는 형태 두 가지로 사용한다.

public inline fun <R> run(block:()->R) : R = return  block()

public inline fun <T,R> T.run(block: T.()->R) : R = return  block()

사용 예

var skills  = "Kotlin"
println(skills)

val a = 10
skills = run{
  val level = "Kotlin Level:" + a
  level // 마지막 표현식이 반환됨
}

println(skills) // Kotlin Level: 10
  

apply 와 유사하게 this로 받을 수 있지만, this를 리턴하는 apply와 다르게 블록 내부 마지막 식을 반환할 수 있다.

// 할당 없이 사용하는 예시

run{
  if(firstTimeView) introView else normalView
}.show()