当我查看 Vagrant 文档https://www.vagrantup.com/docs/networking/forwarded_ports.html 时,它给出了这样的示例:
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "tcp"
config.vm.network "forwarded_port", guest: 2003, host: 12003, protocol: "udp"
end
Run Code Online (Sandbox Code Playgroud)
但是,以下内容似乎也有效:
单引号
Vagrant.configure("2") do |config|
config.vm.network 'forwarded_port', guest: 2003, host: 12003, protocol: "tcp"
config.vm.network 'forwarded_port', guest: 2003, host: 12003, protocol: "udp"
end
Run Code Online (Sandbox Code Playgroud)
冒号前缀
Vagrant.configure("2") do |config|
config.vm.network :forwarded_port, guest: 2003, host: 12003, protocol: "tcp"
config.vm.network :forwarded_port, guest: 2003, host: 12003, protocol: "udp"
end
Run Code Online (Sandbox Code Playgroud)
这些语法有什么区别?只有当您有像 puppet这样的变量时才应该使用双引号吗?
什么是冒号前缀语法?这是令人困惑的,因为该行中的其余关键字都带有冒号后缀。
Vagranfiles 有风格指南吗?
免责声明:以下是自以为是(只是我对此的看法)。但所有的风格指南也是如此。不要陷入对这背后的推理的深思熟虑中,只要做出你的选择并尝试保持一致。
很快:使用这个风格指南
长答案:好像没有官方的 Vagrant 风格指南,但既然是 Ruby 编程语言,我们可以看看官方的 Ruby 风格指南……哦,等等,其实 Ruby 也没有!这个可能是最受欢迎的,所以坚持下去:
'word')、双引号 ( "word") 或符号 ( :word)?简而言之:使用双引号。
长答案:样式指南在单引号和双引号问题上是矛盾的:它为您提供 A 和 B 选择,因此请坚持使用 Vagrant 文档:
默认使用双引号:
node.vm.provision "shell", inline: "echo hello from node #{i}"
如果双引号是字符串的一部分,请使用单引号。Vagrant 文档中的这个片段与样式指南一致:
config.winssh.export_command_template = '$env:%ENV_KEY%="%ENV_VALUE%"'
简而言之:冒号标记一个symbol(请参阅 Ruby 文档)。
这个答案扩展了一点:Ruby 中的冒号运算符是什么?
symbols什么时候应该在 Vagrantfile 中使用?很快:(实际上)从不。
长答案:坚持使用双引号以保持一致性,除非您在 Vagrant 解析您的 Vagrantfile 时确实遇到了可变性或性能问题。更多关于 Ruby 中符号和字符串的性能和可变性:Ruby 符号和字符串之间的区别。
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |