[英]Is assoc behavior inconsistent?
当索引超出范围时, assoc
可能抛出IndexOutOfBoundsException,如:
user=> (assoc [] 1 nil)
IndexOutOfBoundsException clojure.lang.PersistentVector.assocN(PersistentVector.java:137)
如果我尝试在索引0处设置值,为什么不会抛出相同的异常呢?
user=> (assoc [] 0 nil)
[nil]
在我看来,在这两种情况下,指数都超出界限......
谢谢
Assoc-in使用assoc来修改所提供键的元素(在您的情况下为索引)。 Assoc-in(和assoc)尝试创建所需的键(或索引)。
关联向量的特殊处理在assoc docstring中提到:
应用于向量时,返回包含val的索引的新向量。 注 - 索引必须是<=(计数向量) 。
更新:只是为了澄清:缺少的异常是一致的,因为0是空向量中新元素的有效索引,而1不是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.