¿Cuándo debe una función incluir una declaración de retorno explícita en Julia?


8

¿Cuándo debería una función en Julia tener una declaración return usando la palabra clave return y cuándo debería regresar al tener la variable que quiero devolver al final de la función?

Estaba leyendo los documentos de Julia y parece que hay bastante literatura sobre el tema que se encuentra aquí .

Tengo entendido que la convención es usar siempre returnsi está tratando de salir de la función y, de lo contrario, solo tiene la variable que desea devolver al final de la función.

¿Es correcto mi entendimiento o me falta algo aquí?

Respuestas:


10

La guía Blue Style recomienda usar siempre returndefiniciones de funciones de formato largo.

Me gusta la consistencia y la claridad de esa convención.


4

Técnicamente hablando, usted tiene que utilizar la returnpalabra clave si se desea volver CodeInfoa partir de una @generatedfunción. Debido a un error de larga data https://github.com/JuliaLang/julia/issues/25678 que aparece si está tratando de implementar el cumplidor de estilo Cassette aprobado o similar (vea una publicación de blog que escribí sobre eso)

Dicho esto, esto es tan increíblemente oscuro que realmente dudo en hacer esta respuesta. Para todas menos una docena de personas que alguna vez intentarán hacer algo así, la presencia de retorno o no en la última declaración es puramente una cuestión de estilo.


4

Es una cuestión de gustos, pero fuertemente prefieren explícitas returndeclaraciones en funciones multilínea.

Siempre hago una doble toma y me confundo por un segundo y medio cada vez que veo una variable o expresión solitaria que cuelga por sí sola en la última línea. Lo encuentro extraño e inelegante.

Las returndeclaraciones explícitas mejoran mucho la legibilidad, en mi humilde opinión.


3

Esto es puramente estilístico. Nunca es necesario usar la returnpalabra clave. Personalmente, no lo uso.


1
Bueno, lo necesita si desea regresar desde el flujo de control.
Fredrik Bagge
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.