Clojure 对于选择返回的元素的顺序是否有任何保证?
我有九个文本框嵌套在垂直面板中,我想从中获取文本并使用它们。为了方便起见,我只是使用Clojure 对于选择返回的元素的顺序是否有任何保证?,clojure,seesaw,Clojure,Seesaw,我有九个文本框嵌套在垂直面板中,我想从中获取文本并使用它们。为了方便起见,我只是使用select按类获取它们,然后将它们应用于记录的构造函数。基本上是这样的: (ns example.core (:require [seesaw.core :as sc])) (apply ->RecordConstructor (sc/select root [:.textbox])) 这似乎和我预期的一样有效,但是我还没有找到任何关于select返回其元素的顺序的正式定义 这似
select
按类获取它们,然后将它们应用于记录的构造函数。基本上是这样的:
(ns example.core
(:require [seesaw.core :as sc]))
(apply ->RecordConstructor
(sc/select root [:.textbox]))
这似乎和我预期的一样有效,但是我还没有找到任何关于select
返回其元素的顺序的正式定义
这似乎是基于元素被赋予其父元素的顺序。这是正确的吗?我不是专家,但看起来跷跷板只是对其文档模型进行了深度优先的树遍历。所以没有什么可以保证的,但是可以肯定的是,听起来你会按照这样的顺序得到东西:深度优先,最左边的优先。这里的“左”是指跷跷板存储其内容的顺序,而不一定是显示顺序。我也不知道这是什么顺序,但你对“你在模型中添加内容的顺序”的猜测对我来说似乎和任何猜测一样好。我不是专家,但看起来跷跷板只是对其文档模型进行了深度优先的树漫游。所以没有什么可以保证的,但是可以肯定的是,听起来你会按照这样的顺序得到东西:深度优先,最左边的优先。这里的“左”是指跷跷板存储其内容的顺序,而不一定是显示顺序。我也不知道那是什么顺序,但你对“你在模型中添加东西的顺序”的猜测对我来说似乎和任何猜测一样好。什么是
sc
名称空间?@AlanThompson哇。这是我在跷跷板核心的别名。因为问题是用跷跷板标记的,所以我将删除它。就我个人而言,我非常希望您在代码段前面加一个(ns foo.core(:require[seesaw.core:as sc])
或(require'[,,:as sc])
。Clojure core有数百个VAR,很难知道从哪里来的。特别是在这个站点上的一个代码片段中,在您拥有共享上下文的代码库之外。(即使是在代码库内部,我也宁愿(几乎)从不:引用或:使用任何东西,但你在闭门后所做的事情是你和你的同事之间的事。)只需我的2c。@madstap修复了。sc
名称空间是什么?@AlanThompson哇。这是我在跷跷板核心的别名。因为问题是用跷跷板标记的,所以我将删除它。就我个人而言,我非常希望您在代码段前面加一个(ns foo.core(:require[seesaw.core:as sc])
或(require'[,,:as sc])
。Clojure core有数百个VAR,很难知道从哪里来的。特别是在这个站点上的一个代码片段中,在您拥有共享上下文的代码库之外。(即使是在代码库内部,我也宁愿(几乎)从不:引用或:使用任何东西,但你在闭门后所做的事情是你和你的同事之间的事。)只需要我的2c。@madstap修复。