我对此很陌生,所以如果这看似微不足道,我道歉。
尝试使用n时,我得到IndexOutOfBoundsException
,因为lst
的大小可能小于2.我该如何解决这个问题?
(defn invert-helper [lst]
(list (nth lst 1) (first lst)))
谢谢!
答案 0 :(得分:0)
nth
函数有一个3-arity选项,用于不希望因超出范围而抛出异常的情况。作为第3个参数,您提供了在索引超出范围时返回的值。这避免了首先检查长度然后以不计数的顺序执行nth
的低效率。
user=> (nth [1 2 3] 5 nil)
nil
user=> (nth [1 2 3] 5 ::not-found)
:user/not-found