gpt4 book ai didi

ruby-on-rails - 如果只有一个存在,是否有用于返回第一个数组元素的 ruby​​ 习惯用法?

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

如果数组只包含一个值,我想返回数组的第一个元素。

目前,我使用:

vals.one? ? vals.first : vals.presence

因此:

vals = []; vals.one? ? vals.first : vals.presence
# => nil

vals = [2]; vals.one? ? vals.first : vals.presence
# => 2

vals = [2, 'Z']; vals.one? ? vals.first : vals.presence
# => [2, "Z"]

是否有内置的东西可以做到这一点,或者是否有更好的设计考虑?


我的用例是特定的,涉及知道从方法(将实现上述代码)中期望什么的演示者。如果这些演示者将所有返回值作为数组处理,那么在大多数情况下 (~90%),它们将迭代大小为 10 的数组。

最佳答案

您似乎想处理 val 数组未定义的情况,所以...

val.size > 1 ? val : val[0] if defined?(val)

但正如已经指出的那样,传递一致的参数(总是数组)会更好,因此如果未定义,以下内容将传递 val 数组或空数组

defined?(val) ? val : []

关于ruby-on-rails - 如果只有一个存在,是否有用于返回第一个数组元素的 ruby​​ 习惯用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109800/

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