본문 바로가기

안드로이드

코틀린 apply, run, let

apply : 수신객체의 내용 변경해서 리턴

 

Ex) 텍스트뷰 색상,글자,크기등 변경 

 

val tv = TextView(this.context).apply {

    text = items[i].training

    textSize = 30.0f

    setTextColor(Color.WHITE)

    setPadding(0, 4, 0, 4)

    setOnClickListener {

        viewModel.branchIdClick(items[i])

        Toast.makeText(this@LoginBottomFragment.context, "$text 선택", Toast.LENGTH_SHORT).show()

        dismiss()

    }

}

 

 

run : 수신객체 리턴하지 하고 특정한 동작 후 ,  마지막 블록 리턴

 

  val man = Man(name = "남자" , age=29 var temper = 36.5f)

  fun isSick() : Boolean = temp > 37.5f

 

  val isSick = man.run{

       temper = 37.4

       isSick()

  }

 

 

with : Run 과 같지만 수신객체를 파라미터로 사용, 잘 사용안함 

 

 

let : run, with 와 비슷 수신객체 접근시 it 사용 , 널 체크시 사용 , 

          널한 수신객체를 다른 타입의 변수로 변경시 사용

 

 

ticket?.let {

    viewModel.ticketId = it.id

    viewModel.selectDate(it.type)

}