【问题标题】:Is There A Style Guide For Quoting Variables In Vagrantfiles?是否有在 Vagrantfiles 中引用变量的样式指南?
【发布时间】:2017-10-25 08:20:47
【问题描述】:

当我查看 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

但是,以下内容似乎也有效:

单引号

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

冒号前缀

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

这些语法有什么区别?是否只有当您有变量like in puppet 时才应该使用双引号?

什么是冒号前缀语法?这是令人困惑的,因为该行中的其余关键字都有冒号后缀。

是否有 Vagranfiles 的样式指南?

【问题讨论】:

    标签: vagrant


    【解决方案1】:

    免责声明:以下是自以为是(只是我对此的看法)。但所有的风格指南也是如此。不要陷入对这背后的推理的深入思考,只需做出选择并努力保持一致即可。

    是否有样式指南 Vagrantfiles?

    很快:Use this style guide

    长答案:似乎没有任何官方的 Vagrant 风格指南,但由于它是 Ruby 编程语言,我们可以查看官方的 Ruby 风格指南……哦,等等,实际上 Ruby 也没有!这个可能是最受欢迎的,所以坚持下去:

    rubocop-hq/ruby-style-guide

    我应该使用什么:单引号 ('word')、双引号 ("word") 或符号 (:word)?

    简短地说:使用双引号。

    长答案:风格指南在单引号和双引号问题上是矛盾的:it offers you choice A and B,所以坚持使用 Vagrant 文档:

    • 默认使用双引号:

      node.vm.provision "shell", inline: "echo hello from node #{i}"

    • 如果双引号是字符串的一部分,请使用单引号。这个snippet from Vagrant documentationstyle guide一致:

      config.winssh.export_command_template = '$env:%ENV_KEY%="%ENV_VALUE%"'

    什么是冒号前缀语法?

    简而言之:冒号标记symbol (see Ruby documentation)。

    这个答案再扩展一点:What is the colon operator in Ruby?

    什么时候应该在 Vagrantfile 中使用symbols

    很快:(几乎)从不

    长答案:坚持使用双引号以保持一致性,除非您在 Vagrant 解析您的 Vagrantfile 时遇到可变性或性能问题。更多关于 Ruby 中符号和字符串的性能和可变性:The Difference Between Ruby Symbols and Strings

    【讨论】:

      【解决方案2】:

      Vagrantfile 是一个 ruby​​ 脚本,因此它遵守 ruby​​ 规则。

      使用双引号的主要优点之一是当您需要string interpolation

      【讨论】:

      • 所以除非我们需要字符串插值,否则应该使用单引号。什么是冒号前缀?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      相关资源
      最近更新 更多