【问题标题】:Ruby Syntax, using numbers in symbols?Ruby语法,在符号中使用数字?
【发布时间】:2016-12-18 15:22:28
【问题描述】:

我是 ruby​​ 和 Chef 的新手,在我的食谱中定义属性时遇到了语法问题。下面是相关代码:

default[:my_cookbook][:stuff] = {
:foo_bar => {
:grok => ['Hi'],
:2grok => ['Bye'],
...

看来我不能使用数字来开始 2grok.. 有没有办法避免这种情况,或者使用 '2grok' 的正确语法是什么?

【问题讨论】:

    标签: ruby syntax symbols


    【解决方案1】:

    如果要以数字开头的符号,则需要将其括在引号中:

    :'2grok' => ['Hi']
    

    如果你使用双引号,ruby interpolates 字符串里面:

    :"#{1 + 1}grok"
    

    另外,你可以使用percent-notation:

    %s{2grok}
    

    最后,您可以通过在 String 上调用 to_sym 方法来获取符号:

    '2grok'.to_sym => ['Hi']
    

    【讨论】:

      【解决方案2】:

      就 Ruby 而言,Mladen 的回答是正确的。您只能使用引号在符号名称的开头使用数字。请记住,您也必须使用它们来访问哈希值。但是,您不应该使用符号来定义食谱中的属性。 Chef Style Guide recommends using strings instead.

      【讨论】:

        猜你喜欢
        • 2021-05-01
        • 2014-07-01
        • 2015-06-02
        • 1970-01-01
        • 2011-08-12
        • 2013-05-13
        • 1970-01-01
        • 2012-07-11
        • 1970-01-01
        相关资源
        最近更新 更多