如何使用 ClojureScript 将数字转换为相同数量的空格,以便 println 函数可以使用它?

How to transform, with ClojureScript, a number into the same number of spaces such that it can be used by the println function?

考虑以下假设函数:

(map #(println (:level %) (:data %)) (category-visitor))

哪里

(category-visitor)

表示(嵌套)地图的向量,并且

(:level % )

表示整数。

我想用等于

的空格数缩进打印行
(:level %)

使地图之间的层次关系可视化。

问题是如何将数字转换为相同数量的空格,以便 println 函数可以使用它。

您可以使用repeat函数生成任意数量的空格作为序列,然后将它们转换为字符串:

(defn indent-str [level]
  (apply str (repeat level " ")))

(println (indent-str 5) "x")
;;=>      x