Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

371
Vistas
Kotlin usa UInt para acceso a matrices y constante

los tipos de datos sin firmar podrían ser buenos para el acceso a la matriz. Por lo general, los índices no están firmados de todos modos. Pero actualmente no puedo hacer esto directamente. Por ejemplo, este código.

 val foo = 1.toUInt() "foo"[foo]

no se puede compilar con:

 error: type mismatch: inferred type is UInt but Int was expected

¿Cuál es la mejor manera de lidiar con esto? Claro que podría hacer:

 val foo = 1.toUInt() "foo"[foo.toInt()]

pero esto se siente mal de alguna manera. UInt es una clase en línea de todos modos y se borra a Int de todos modos, por lo que creo que esto no debería ser necesario. ¿Alguien vio un kotlin/KEEP para esto? También me pregunto cómo definir constantes sin firmar. Desafortunadamente, el constructor es privado, por lo que no puedo hacer, por ejemplo.

 const val foo = UInt(42)

y

 const val foo = 42.toUInt()

falla con 42.toUInt() no es un valor constante

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En la pregunta de indexación de matrices, .toInt() es el mejor método que he encontrado.

Al declarar una const, puede agregar una "u" a cualquier constante entera, o "uL" para una constante larga, como 42u o 1_000_000_000_000uL .

over 4 years ago · Santiago Trujillo Denunciar

0

A menos/hasta que haya soporte incorporado para esto, puede agregarlo usted mismo fácilmente. Por ejemplo, para matrices estándar:

 operator fun <T> Array<T>.get(index: UInt) = this[index.toInt()]

Y para CharSequence s (que no son matrices):

 operator fun CharSequence.get(index: UInt) = this[index.toInt()]

Con eso en el alcance, ¡tu "foo"[foo] funciona bien!

(También necesitaría sobrecargas separadas para IntArray & c si las usara).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda