gpt4 book ai didi

ruby - *::(星号双冒号)在 Ruby 中做什么?

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:28 28 4
gpt4 key购买 nike

我今天浏览 Rails 代码时偶然发现了 this snippet :

new_date(*::Date._parse(string, false).values_at(:year, :mon, :mday))

*::Date 中的星号双冒号(或 splat 双冒号)有什么作用?

大概它与特定命名空间的 Date 类的范围有关......但作者包含它是必要的,而不是仅仅使用标准的 Date 类。

最佳答案

我读错了代码;它根本不是“*::”运算符。

这是发生了什么:

  • 在全局范围内找到Date类(::Date)
  • 调用 _parse() 获取哈希值
  • 调用values_at将散列转化为数组
  • 在将数组转换为方法调用的多个参数的典型功能中使用星号运算符
  • 调用 new_date(),为其 yearmonmday 参数传递数组元素.

*:: 运算符之间缺少空格,这让人感到困惑。 :-\

关于ruby - *::(星号双冒号)在 Ruby 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14187925/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com