为什么 CreateContainerOptions 的 Volumes 需要一个

我一直在使用fsouzago-dockerclient]创建的伟大的,但我很困惑为什么是字符串到结构的映射?docker.CreateContainerOptions.Volumes

文档没有解释为什么会这样,但我想你只需要 map[string] => string 将主机卷映射到容器卷?或者将该值留空表示宿主卷将安装在容器内的同一路径上。

我查看了Github 上的一堆开放代码,人们创建了容器,但我看到了很多示例,人们仅使用一个字符串和一个空结构作为值来安装 Volumes。

我也是 Go 的新手,所以我可能会遗漏一些完全显而易见的东西。


当年话下
浏览 205回答 2
2回答

函数式编程

空结构是 go 中唯一占用 0(零)字节内存的类型。这是一个常见的成语时,要存储用一个空结构的东西或信号的东西。但那东西应该尽可能小。在你的情况下map[string]struct{}用于仅存储地图的键,没有关联的值。通过这种方式,您可以快速检查地图是否包含密钥。(基本上是一套)。以下是您可以对空结构执行的操作的几个示例。

翻过高山走不出你

我map[string]struct{}不确切知道这个包是如何工作的,但它是表示集合的 Golang 惯用方式。所以我的猜测是地图的键必须包含卷的完整路径......
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go