首页 > 解决方案 > vagrant 多机设置中的机器命名约定

问题描述

我开始开发多机无业游民设置。我注意到在 vagrant 文件中定义机器名称的两种命名约定方法。第一种方法是在机器名称前加上“冒号”。第二个是双引号中的机器名称。这上线如

config.vm.define :boxname .....

或者

config.vm.define "boxname" .....

我已经在 github 中看到了这两种方式。是否有规定的方法/原因或者这只是偏好?

标签: rubyvirtualboxvagrantfile

解决方案


不同的“约定”与 Vagrant 文件实际上是 Ruby 片段这一事实有关。在红宝石中

  • "foo"是一个字符串对象,类似于其他语言中的字符串。然而,与大多数其他语言相比,Ruby 字符串对象是可变的。
  • :foo是一个符号对象。符号提供了一种有效的方式来引用具有人类可读名称的事物,而无需在幕后拖拽这个通常很长的名称。具有相同名称的符号始终引用相同的符号对象——即使它们在代码的不同位置被引用。

Vagrant 支持使用其中一种,但对我来说,在这个用例中使用符号感觉更自然。此外,如果您使用字符串,Ruby 解释器必须逐个字符地比较整个字符串以确定它们是否相同,而比较符号归结为比较指针。


推荐阅读