柴油文档中的 `tags` 变量来自啥?

Posted

技术标签:

【中文标题】柴油文档中的 `tags` 变量来自啥?【英文标题】:What does the `tags` variable come from in the diesel documentation?柴油文档中的 `tags` 变量来自什么? 【发布时间】:2021-11-07 12:39:26 【问题描述】:

我正在查看此页面上的官方 Diesel 文档:https://docs.diesel.rs/diesel/expression_methods/trait.PgArrayExpressionMethods.html#example。该示例使用变量tags,但我看不到它的定义位置。这段代码sn-p应该怎么理解?

let cool_posts = posts.select(id)
    .filter(tags.contains(vec!["cool"]))
    .load::<i32>(&conn)?;
assert_eq!(vec![1], cool_posts);

let amazing_posts = posts.select(id)
    .filter(tags.contains(vec!["cool", "amazing"]))
    .load::<i32>(&conn)?;

tags 变量从何而来?

【问题讨论】:

我终于发现标签是 vec。是否可以在柴油查询中使用 in select ? @彼得霍尔 【参考方案1】:

Rust 文档中的示例可以使用 # 隐藏部分代码。这样做通常是为了减少重复样板的噪音,例如 main 函数和导入。

如果您查看 the source 的该特征,您可以看到完整的代码包含:

/// # table! 
/// #     posts 
/// #         id -> Integer,
/// #         tags -> Array<VarChar>,
/// #     
/// # 

# 开头的行不会在文档中呈现,但在您运行文档测试时仍会编译。

据推测,在 Diesel 示例的上下文中,这很常见,或者可能被认为足够“明显”,以至于作者认为没有它的示例会更清晰。这可能是一个见仁见智的问题,并不是每个人都会同意。

【讨论】:

我检查了源代码并阅读了它,发现标签是一个数组,是否可以使用柴油进行选择?我现在想使用柴油进行查询,但没有找到方法。 @彼得霍尔

以上是关于柴油文档中的 `tags` 变量来自啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用锈柴油创建新数据库?

在柴油机中执行正确连接

c语言中的extern是啥,有啥作用啊?

Java API 文档有啥用途?

$@ 在Linux Makefile中是啥意思

JavaFX文档啥是JavaFX