为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 CreateContainerOptions 的 Volumes 需要一个

为什么 CreateContainerOptions 的 Volumes 需要一个

Go
当年话下 2021-12-13 10:53:38
我一直在使用fsouzago-dockerclient]创建的伟大的,但我很困惑为什么是字符串到结构的映射?docker.CreateContainerOptions.Volumes文档没有解释为什么会这样,但我想你只需要 map[string] => string 将主机卷映射到容器卷?或者将该值留空表示宿主卷将安装在容器内的同一路径上。我查看了Github 上的一堆开放代码,人们创建了容器,但我看到了很多示例,人们仅使用一个字符串和一个空结构作为值来安装 Volumes。我也是 Go 的新手,所以我可能会遗漏一些完全显而易见的东西。
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

空结构是 go 中唯一占用 0(零)字节内存的类型。

这是一个常见的成语时,要存储用一个空结构的东西或信号的东西。但那东西应该尽可能小。

在你的情况下

map[string]struct{}

用于仅存储地图的键,没有关联的值。通过这种方式,您可以快速检查地图是否包含密钥。(基本上是一套)。

以下是您可以对空结构执行的操作的几个示例。


查看完整回答
反对 回复 2021-12-13
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

map[string]struct{}不确切知道这个包是如何工作的,但它是表示集合的 Golang 惯用方式。所以我的猜测是地图的键必须包含卷的完整路径......


查看完整回答
反对 回复 2021-12-13
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信