freeCodeCamp/guide/spanish/clojure/create-local-variables-with.../index.md

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 

:rocket: ¡IDEAe!

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 

:rocket: ¡IDEAe!

¡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 

:rocket: ¡IDEAe!

| :point_left: Anterior | :book: Casa :book: | Siguiente :point_right: |
| Condicionales | Tabla de Contenidos | Bucle y repetición |