select returns 的元素顺序是否有任何保证?

Are there any guarantees about the order of elements that select returns?

我有九个文本框嵌套在垂直面板内,我想从中获取文本并使用。为方便起见,我只是使用 select 通过 class 获取它们,然后将它们应用于记录的构造函数。基本上是这样的:

(ns example.core
    (:require [seesaw.core :as sc]))

(apply ->RecordConstructor
       (sc/select root [:.textbox]))

似乎 可以按我的预期工作,但我无法找到任何关于定义 select returns 顺序的官方信息它的元素在.

这似乎是基于元素被赋予其父元素的顺序。这是正确的吗?

我不是专家,但看起来 seesaw 只是对其文档模型进行深度优先树遍历。所以没有什么可以保证的,但可以肯定的是,听起来你会按照这个顺序得到东西:深度优先,最左边优先。这里 "left" 是 seesaw 存储它的东西的顺序,不一定是显示顺序。同样,我不知道那是什么顺序,但你对 "the order you added stuff to the model" 的猜测对我来说似乎和任何猜测一样好。