【问题标题】:How to pass an array as an argument list如何将数组作为参数列表传递
【发布时间】:2013-04-21 22:59:40
【问题描述】:

Ruby 的 documentation 将方法签名显示为:

start_with?([prefixes]+) → true or false

对我来说,它看起来像一个数组,但事实并非如此。您可以将单个字符串或各种字符串作为参数传递,如下所示:

"hello".start_with?("heaven", "hell")     #=> true

如何将数组作为参数列表传递?以下方法不起作用:

"hello".start_with?(["heaven", "hell"])

【问题讨论】:

    标签: ruby splat


    【解决方案1】:

    括号是可选的文档约定,所以括号中的

    start_with?([prefixes]+) → true or false

    只是说你可以用零个或多个prefixes 调用start_with?。这是文档中的常见约定,您会在 jQuery 文档、Backbone 文档、MDN JavaScript 文档以及几乎所有其他软件文档中看到它。

    如果您有一个前缀数组要与start_with? 一起使用,那么您可以将数组分解为这样:

    a = %w[heaven hell]
    'hello'.start_with?(*a)           # true
    a = %w[where is]
    'pancakes house?'.start_with?(*a) # false
    

    【讨论】:

    • +1 太棒了,谢谢,从未听说过 splat。对 ruby​​ 很陌生,谢谢!
    猜你喜欢
    • 2022-01-02
    • 2014-12-17
    • 1970-01-01
    • 2017-05-20
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多