Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

369
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!