2.7 KiB
title | localeTitle |
---|---|
Clojure Create Local Variables with Let | Clojure Crear variables locales con Let |
let
es una parte fundamental de Clojure. Mientras que def
crea una variable global, let
crear una variable local.
(def x 5)
(println x)
; => 5
; nil
(let [x 2]
(println x))
; => 2
; nil
(println x)
; => 5
; nil
x
en este ejemplo nunca se cambia realmente. x
solo se refiere a algo diferente dentro de nuestra let
vinculante. Esta puede ser una forma útil de evitar la repetición dentro de una función.
Esto es increíblemente útil. Tener demasiadas variables globales puede llevar a errores desagradables y comportamiento no deseado.
(def x 5)
(defn add-5 [y] (+ xy))
(add-5 5)
; => 10
(defn change-x []
(def x 6))
(change-x)
; => nil
(add-5 5)
; => 11
¡UH oh! ¡Eso ya no agrega 5! Por supuesto, este ejemplo es un poco tonto, pero el uso de demasiadas variables globales puede dar lugar a errores que son tan aterradores como este.
Nota: No estamos reasignando realmente x
aquí, como lo harías en un lenguaje tipo C. Solo estamos creando una nueva variable que también se llama x. Esta es una muy, muy, muy mala idea.
Enlaces múltiples
let
también puede definir múltiples variables a la vez, y puede asignar variables a expresiones.
(let [spam "foo"
ham (str "b" "ar")] ; str is a function that concatenates strings
(println spam ham)) ; or converts variables into strings.
; => foo bar
; nil
| Anterior | Casa | Siguiente |
| Condicionales | Tabla de Contenidos | Bucle y repetición |