indexOf en Matrices de Kotlin

¿Cómo obtengo el índice de un valor de una matriz de Kotlin?

Mi mejor solución ahora es usar:

val max = nums.max() val maxIdx = nums.indices.find({ (i) -> nums[i] == max }) ?: -1 

hay una mejor manera?

Si quiere get el índice del elemento máximo, puede usar la function 'maxBy':

 val maxIdx = nums.indices.maxBy { nums[it] } ?: -1 

Es más eficiente ya que atravesará la matriz solo una vez.

Con Kotlin actual (1.0) puede usar la function de extensión indexOf() en arreglos:

 val x = arrayOf("happy","dancer","jumper").indexOf("dancer") 

Todas las funciones de extensión para matrices se encuentran en la reference de API .

En tu ejemplo:

 val maxIdx = nums.indexOf(nums.max()) 
  • ¿Es posible pasar la reference al elemento i-ésimo de una matriz primitiva?
  • Inicializando matrices en kotlin
  • Acoplar arreglo en Kotlin
  • ¿Cómo serializar / deserializar una matriz de objects personalizados en Kotlin?
  • Cómo usar la biblioteca kmongo para operador de sector
  • ¿Cómo puedo convertir CharArray / Array <Char> en una cadena?
  • Kotlin y ejemplificación de matriz detallada
  • Conceptos básicos de Kotlin: ¿cómo agregar o establecer un elemento de un map?
  • Inicialización de Kotlin 2d Array
  • ¿Cómo implementar readLine () !!. ToIntArray () en Kotlin?
  • Método igual para class de datos en kotlin