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

330
Visualizações
¿Qué es este tipo de Kotlin: (String..String?)

IntelliJ me muestra sugerencias de contexto de que mis variables son de tipo (String..String?) . No puedo encontrar ninguna mención al respecto en Internet, ¿cuál es este tipo?

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

(String..String?) representa un tipo flexible con un límite inferior String y un límite superior String? (cadena anulable). Este no es un código de Kotlin válido (no es denotable ), pero se usa en las partes internas del compilador y, por lo tanto, a veces en las sugerencias de IntelliJ.

(En la JVM, a menudo vemos tipos de plataforma que usan ! como en String! , que son un caso más específico de tipos flexibles)

Es la forma en que Kotlin dice que no sabe si el tipo String declarado para payload.email es anulable o no (por ejemplo, si esto se declara en Java, que no los distingue), y aún así no quiere hacer cumplir cualquiera de esos, por conveniencia (de ahí "flexible").

Como sugiere el nombre, los tipos flexibles son flexibles: se puede usar un valor de tipo (L..U) en cualquier contexto, donde se necesita uno de los tipos posibles entre L y U

Esto significa que aunque el tipo real del valor sea "¿algún lugar entre String y String? " , los valores de este tipo se pueden usar incluso en lugares que esperan String , aunque el tipo real de ese valor pueda ser String? y por lo tanto el valor podría ser nulo.

Esto es útil porque suponiendo que sea String significaría que las comprobaciones nulas se marcarían como redundantes, y suponiendo que sea String? obligaría al desarrollador a escribir cheques nulos en todas partes, aunque podrían saber que este método Java en particular no puede devolver un valor nulo.

En general, es una buena práctica declarar explícitamente el tipo de una variable que obtiene de Java, para evitar la propagación del tipo de plataforma y la incertidumbre (y la inseguridad) que conlleva:

 val email: String = payload.email // if you know it cannot be null val email: String? = payload.email // if you don't know
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