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

194
Visualizações
¿Una forma más sencilla de escribir x == 1 && y == 1 && z == 1 en Kotlin?

Me preguntaba si hay una forma más simple o más corta de escribir condiciones repetitivas como x == 1 && y == 1 && z == 1.

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

0

Podría considerar usar predicados usando all . Por ejemplo:

 listOf(x, y, z).all {it == 1}

Esto devolverá true cuando x==1 , y==1 y z==1 .

Si el objetivo es acortar lo que desea, no hay mucho espacio para las piernas ya que su expresión booleana ya es muy concisa. Sin embargo, algunas de las otras respuestas han ilustrado cómo hacer que lo que desea sea más legible .

over 4 years ago · Santiago Trujillo Relatório

0

Cuando se trata de código (exactamente) repetido, debe considerar extraer la declaración en un método y darle un nombre significativo, que sepa por el contexto en el que se usa. Esto hace que el requisito (leer el código) sea más fácil de entender, en el punto donde se usa. Y también hace que sea más fácil detectar que siempre es la misma condición.

 if (conditionName(x, y, z)) { } fun boolean conditionName(int x, int y, int z) { return x == 1 && y == 1 && z == 1; }

No puedo pensar en una declaración más corta para la condición, pero la extracción de un método mejorará la legibilidad de su código, que debería ser su objetivo general.

over 4 years ago · Santiago Trujillo Relatório

0

Puede crear una función de conveniencia para este tipo de código repetido (o si solo necesita que sea más legible o más seguro de editar):

 fun <T> T.allEqual(vararg items: T) = items.all { it == this } // or you could make the receiver the first parameter instead, this is just // more explicit about which item is the value being compared against 1.allEqual(x, y, z)

Pero no, no hay ninguna otra abreviatura integrada en el lenguaje, que yo sepa: ¡condiciones como x == 1 encadenadas con operadores booleanos son tan simples como pueden ser! Si desea verificar varias cosas sin repetirse, any y all una lo hacen fácil, al mismo tiempo que son flexibles para todo tipo de situaciones y permiten que el usuario combine la funcionalidad que necesita con esas funciones más generales.

Si desea específicamente una versión de all lo que hace una comparación simple con un solo valor, y no requiere crear una listOf iterable, debe escribir la suya propia con esas herramientas (que es básicamente lo que he hecho). ¡Tú decides si crees que vale la pena!

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