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

135
Views
Koltin devuelve nulo si el valor es nulo de lo contrario

Trabajo con algo de lógica empresarial escrita en Kotlin. Tengo un caso así en mi método: compruebo un valor para nulo, y si ES nulo, quiero devolverlo, de lo contrario, hago algo de lógica. Mi versión se parece a:

 fun calculateFoo(parameter: SomeObject?): ReturnObject? = if (parameter == null) null else performCalculation(parameter)

Literalmente "Si el valor es nulo, devuélvalo, de lo contrario, procéselo". Normalmente, hacemos algo si el valor NO es nulo, como el operador elvis, pero aquí hay una lógica "invertida". ¿Hay una mejor solución para esto?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Dando un paso atrás, si hace que esta sea una función de extensión con un parámetro no nulo, conduce a un uso más natural en su sitio de llamada.

 fun SomeObject.calculateFoo(): ReturnObject = performCalculation(this) val nullable: SomeObject? = ... val result = nullable?.calculateFoo()

Creo que es mejor para la claridad del código que una función no devuelva simplemente nulo para un argumento nulo, porque enmascara la nulabilidad en el sitio de la llamada, donde un ?. call sería suficiente y mantendría el código claro sobre el posible valor de retorno nulo. La semántica de su función tal cual permite que se pase un argumento inútil para un resultado inútil.

De acuerdo, entiendo que su ejemplo es artificial, y hay casos en los que hay varios argumentos o en los que un argumento nulo solo conduce a un resultado inútil en determinadas circunstancias, en cuyo caso la respuesta ?.let sería más apropiada.

over 4 years ago · Santiago Trujillo Report

0

Puedes usar el ?. operador en combinación con let .

 fun calculateFoo(parameter: SomeObject?): ReturnObject? = parameter?.let { performCalculation(it) }
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!