gpt4 book ai didi

ruby - 如何使用 Ruby 的 Symbol#to_proc 访问数组中的数组?

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

如何使用 Symbol#to_proc 语法编写以下内容?

[[a,1],[b,2],[c,3]].map { |r| r[0] }

这给出了参数数量错误的错误。但是我不知道在哪里给出索引参数。

[[a,1],[b,2],[c,3]].map &:[]  # Where to put the index 0 ?

我更喜欢第一种形式,我只是想知道如何使用 &: 来实现。

最佳答案

你不能。您只能通过这种方式传递没有参数的方法。在您的情况下,您需要提供 0 作为参数,您只能使用 block 语法。

另一方面,您可以使用first 方法实现相同的目的:

[[a,1],[b,2],[c,3]].map(&:first)

编辑:

Joerg 和 tokland 的回答都激发了我进行一些试验的灵感。你可以实际上做这样的事情:

arr = [[:a, 1], [:b, 2], [:c, 3]]
arr.each_with_object(0).map(&:[])
#=> [:a, :b, :c]
arr.each_with_object(1).map(&:[])
#=> [1, 2, 3]

关于ruby - 如何使用 Ruby 的 Symbol#to_proc 访问数组中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5701744/

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