DESTRUCTURING
DESTRUCTURING은 집합에서 이름에 간단히 값을 매기기 위한 아이디어를 바탕으로 한다.
(defn my-first [[first-thing-in-vector]] first-thing-in-vector) (my-first [1 2 3 4 5 6]) 1
my-first 안에 들어있는 인자가 벡터로 되어있는 것을 보자. "이 인자는 벡터!"라는 것을 말해주는 것이다. 이 벡터안에 있는 것들을 마음데로 이름 붙이고 또 나머지 매개변수도 쓸 수 있다.
(defn students [[first second & others]] (print (str "첫 번째 학생: " first)) (print (str ", 두 번째 학생: " second)) (print (str ", 나머지 학생: " (clojure.string/join ", " others)))) (students ["Kim" "Min" "Nam" "Hwang" "Ku"])
이번에는 벡터가 아닌 맵으로 해보자. 맵에 있는 내용과 나의 매게변수와 연결을 할 수 있는데 자세한 것은 밑에서 구경해보자.
(defn coordinate더 간결하게
[{x :x-axis y :y-axis}]
(println (str "x축: " x))
(println (str "y축: " y)))
(coordinate {:x-axis 24 :y-axis 44})
(defn coordinate [:keys {x-axis y-axis}] (println (str "x축: " x-axis)) (println (str "y축: " y-axis))):as를 사용하여 원래의 맵에 접근할 수 있다.
(defn coordinate [:keys [x-axis y-axis] :as args}] (println (str "x축: " x-axis)) (println (str "y축: " y-axis)))
댓글 없음:
댓글 쓰기