Cra*_*ker 13 ruby syntax scope splat
我今天在浏览Rails代码时偶然发现了这个片段:
new_date(*::Date._parse(string, false).values_at(:year, :mon, :mday))
Run Code Online (Sandbox Code Playgroud)
什么是星号 - 双结肠(如果你愿意的话,还是splat-le-colon)*::Date呢?
据推测,它与特定命名空间的Date类的范围有关......但是,作者必须包含它而不仅仅是使用标准Date类.
Cra*_*ker 14
我读错了代码; 它根本不是"*::"操作符.
这是发生了什么:
Date在全局范围内查找类(::Date)_parse()以获取值的哈希值values_at将哈希值转换为数组new_date(),传入其阵列元件year,mon和mday参数.*和::运营商之间缺乏空间使其令人困惑.: - \