小编spe*_*ter的帖子

Rust Lang:“if let Some(x) = x”在做什么?

我正在开发几年前编写的 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 教育之路。谢谢。

rust

24
推荐指数
2
解决办法
2万
查看次数

Google Cloud Functions是否支持单个部署包中的多个功能?

此外,考虑到多个相关功能的需求,部署GCF解决方案的有效方法是什么?(并且考虑到每个部署步骤相当慢 - 10秒)

这听起来像一个直截了当的问题,但我无法找到一个确切的答案.我已经在SO上阅读了一些相关的答案,但它们并不是很清楚.

此处的Google文档提到导出"一个或多个功能":https://cloud.google.com/functions/docs/writing/

但是到了部署的时候,CLI命令显然只部署了一个函数,据我所知:gcloud beta functions deploy OneFunctionNameHere.

我错过了什么?如果我在一个index.js中有几个相关的函数,我当然不需要几个慢gcloud beta functions deploy命令?(或者我可以这样做,我得到每个人的独立报告???)

我猜其中一个可能就是答案,但我真的不确定:

  1. 从本地源推送/部署一次到GCP存储桶,然后从该存储桶部署其他功能?(快点?)
  2. 扩展访问URL,如".../MyFunction/SomeSubFunction",并使用request.params路由到正确的响应生成代码.(有npm包...)
  3. 并行运行多个部署,以便"部署时间"不是一个大问题(带宽允许......)

感谢您提供更好的解决方案的智慧.

google-cloud-functions

6
推荐指数
2
解决办法
2301
查看次数

货物说“测试失败,重新运行通过'--lib” - 这是什么意思?

货物想通过这最后一条消息告诉我什么?:

error: test failed, to rerun pass '--lib'

即使 Cargo 书中也有测试示例,显示了这确切的最后一行,但没有解释。这听起来几乎像是在说,“如果您不通过 --lib,我们将不会重新运行测试” - 它是否从缓存中提取测试结果?

如果我在命令行中添加“--lib”,即:cargo test --features some_feature --lib,它似乎没有做任何特别的事情。

经过一些挖掘,我发现了一个 Cargo 代码更改,似乎试图显示“{pkg_info}--lib”

那么,Cargo 想告诉我什么?一些有意义的东西,或者只是一个让新用户感到困惑的错误?

rust rust-cargo

6
推荐指数
1
解决办法
2888
查看次数

标签 统计

rust ×2

google-cloud-functions ×1

rust-cargo ×1