我正在寻找一种独立于编程语言或集合类型来定义集合查询的方法。
详细地说,这将是通用语言(如 Java、C++、Python 等)的语言定义和实现。
正如所评论的那样,我不是在寻找数据库或任何集合表示的实现,而只是一种为元素定义查询的方法,例如std::set/vector
Pythonset()
或任何可以被视为集合的线性结构。
一个类似的例子是jLinq,但不依赖于 JSON 或 javascript,并且具有明确定义的字符串表示。
当然,在不知道哪种数据结构的情况下,您必须为每个问题和每种编程语言实现任何条件过滤器,但是构造查询字符串的方式以及评估它们的方式将很清楚,您不必编写解析器。
所以我想用 Java 或 C++ 写的是
q = query()
.created_after("14.03.2010")
.and(contains("hello")
.or(contains("hallo")))
.sort("caption")
或写成字符串:
"(created_after("14.03.2010") and ( contains("hello") or contains("hallo"))) sort("caption")"
(这没有经过深思熟虑 - 只是为了展示界面的外观)
另一个问题的一个很好的例子是 JSON 或 XML:任何平台或编程语言的清晰语言定义和解析器/工具。