小编Nei*_*ale的帖子

如何创建 Google::Protobuf::Map 实例 [Ruby]

我在 ruby​​ 中有一个 protobuf 对象,它有一个映射作为一个参数。我怎样才能创建一个Google::Protobuf::Map?如果我尝试输入标准哈希表,则会收到错误Expected Map instance

- 编辑 -

在这里找到答案: https: //developers.google.com/protocol-buffers/docs/reference/ruby- generated#map-fields,如果有人需要的话。

ruby dictionary hashtable hashmap protocol-buffers

7
推荐指数
0
解决办法
1238
查看次数

如何将 S3 数据加载到本地内存中,而不是保存到文件中

这是我当前的代码:

import (
  "time"
  "reflect"
  "io/ioutil"
  "fmt"
  "os"
  "github.com/golang/protobuf/proto"
  "github.com/aws/aws-sdk-go/service/s3"
  "github.com/aws/aws-sdk-go/service/s3/s3manager"
  "github.com/aws/aws-sdk-go/aws"
  "github.com/aws/aws-sdk-go/aws/session"
  "github.com/aws/aws-sdk-go/aws/credentials"
)

f, err := os.Create(filename)
if err != nil {
  panic(fmt.Errorf("failed to create file %q, %v", filename, err))
}
_, err = db.Downloader.Download(f, &s3.GetObjectInput{
    Bucket: aws.String("bucketName"),
    Key:    aws.String("myKeyThatMightExist"),
})
if err != nil { // key doesn't exist
  os.Remove(filename)
  return nil
} else {
  file, err = ioutil.ReadFile(filename)
}
Run Code Online (Sandbox Code Playgroud)

我需要file成为从 S3 拉下来的字符串。我存储的本地文件是 S3 上内容的缓存。

这意味着当我尝试下拉数据时,我需要为该数据创建一个文件。由于我正在使用的数据库,我实际上不知道我正在访问的密钥是否存在。我想知道这些解决方案中的任何一个是否可行:1)创建某种类型的缓冲区对象,将整个文件加载到 RAM 中,而不实际保存它。2) 检查文件是否存在于 S3 上,不创建本地文件。如果文件存在,这将让我拉下文件,而如果我在 S3 上不存在,则不会创建空文件。

抱歉,我无法创建 Playground …

amazon-s3 go amazon-web-services

2
推荐指数
1
解决办法
2203
查看次数

等待一个 goroutine 完成

我正在 8 个不同的 goroutine 上运行一个 cpu 密集型脚本。每个 goroutine 都至少需要几分钟才能完成,我想知道这样的事情是否可能:

for i := 0; i < len(input); i += 1 {
  wait_for_number_of_processes_running_to_be_less_than_8
  go calc_math_and_things(input[i])
}
Run Code Online (Sandbox Code Playgroud)

go goroutine

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

自定义类型上 Range&lt;T&gt; 的 Rust impl 迭代器

我有一个点结构,像这样:

#[derive(Clone, Copy, Debug)]
struct Point {
  x: i32,
  y: i32,
}
Run Code Online (Sandbox Code Playgroud)

我想像这样在点之间迭代:

let start = Point { x: 0, y: 0 };
let end = Point { x: 3, y: 3 };
for p in start..end {
  // p should be
  // (0, 0)
  // (1, 0)
  // (2, 0)
  // (0, 1)
  // (1, 1)
  // (2, 1)
  // (0, 2)
  // etc
}
Run Code Online (Sandbox Code Playgroud)

游乐场

但是,我似乎无法实现这一点。start..end产生 a Range<Pos>,它是标准库中的一个类型。所以我不能做一个 custom impl Iterator for Range<Pos>,因为这些类型都不在当前的板条箱中。 …

iterator loops rust

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