我正在开发几年前编写的 Rust 项目,并且遇到了这段代码,其字面意思是:
let mut values = vec![];
for x in maybe_values {
if let Some(x) = x {
values.push(Arc::new(x));
}
}
Run Code Online (Sandbox Code Playgroud)
我知道“if let”引入了模式匹配 if (这似乎是对关键字“let”的糟糕重用,但我会克服这一点 - 如果有人可以帮助我用心理助记符来理解“让”在这里,请这样做!)。
但测试在Some(x) = x做什么?
从我的测试来看,这似乎是一个技巧/习惯用法:a) 测试循环变量“x”是 Some(),b) 最终得到 x 中的 unwrap()ped 值。
但我无法向自己完全解释它,也无法在任何地方找到关于这是一个习语的参考。
希望你能帮助我的 Rust 教育之路。谢谢。
此外,考虑到多个相关功能的需求,部署GCF解决方案的有效方法是什么?(并且考虑到每个部署步骤相当慢 - 10秒)
这听起来像一个直截了当的问题,但我无法找到一个确切的答案.我已经在SO上阅读了一些相关的答案,但它们并不是很清楚.
此处的Google文档提到导出"一个或多个功能":https://cloud.google.com/functions/docs/writing/
但是到了部署的时候,CLI命令显然只部署了一个函数,据我所知:gcloud beta functions deploy OneFunctionNameHere.
我错过了什么?如果我在一个index.js中有几个相关的函数,我当然不需要几个慢gcloud beta functions deploy命令?(或者我可以这样做,我得到每个人的独立报告???)
我猜其中一个可能就是答案,但我真的不确定:
感谢您提供更好的解决方案的智慧.
货物想通过这最后一条消息告诉我什么?:
error: test failed, to rerun pass '--lib'
即使 Cargo 书中也有测试示例,显示了这确切的最后一行,但没有解释。这听起来几乎像是在说,“如果您不通过 --lib,我们将不会重新运行测试” - 它是否从缓存中提取测试结果?
如果我在命令行中添加“--lib”,即:cargo test --features some_feature --lib,它似乎没有做任何特别的事情。
经过一些挖掘,我发现了一个 Cargo 代码更改,似乎试图显示“{pkg_info}--lib”
那么,Cargo 想告诉我什么?一些有意义的东西,或者只是一个让新用户感到困惑的错误?