Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

370
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda