Diferencia entre y correr en Kotlin

Hacerwith yrun tienen la misma funcionalidad con una sintaxis diferente, o hay alguna diferencia importante entrewith yrun?

¿Cuál es la forma correcta?

adapter.run {
    notifyDataSetChanged()
    if (activityDetails.isEmpty())
        emptyText.visibility = View.VISIBLE
    else 
       emptyText.visibility = View.GONE
}


with(adapter){
   notifyDataSetChanged()
   if (activityDetails.isEmpty())
       emptyText.visibility = View.VISIBLE
   else 
       emptyText.visibility = View.GONE
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta