我想循环一个从第n个元素开始的向量而不是0;
在Java中看起来如何:
for(int i = firstIndex; i <= lastIndex; i++) {
newText += contents[i] + " ";
}
答案 0 :(得分:5)
如果你总是处理一个向量,那么subvec
是一个不错的选择。例如:
(subvec contents firstIndex)
如果您希望与一般的序列兼容,则您需要使用drop
。 drop
是O(n)
w.r.t.删除的元素数量,subvec
始终为O(1)
。如果你只丢掉一些元素,差异可以忽略不计。但是对于丢弃大量元素(即大firstIndex
),subvec
将是一个明显的赢家。但subvec
仅适用于矢量。
答案 1 :(得分:1)
您可以使用drop
函数跳过第一个n
元素,然后遍历结果。例如,如果要跳过两个第一个元素:
user=> (drop 2 [1 2 3 4])
(3 4)
以下内容可能与您提供的Java表单相同:
(require '[clojure.string :as str])
(str/join " " (drop first-index contents))