ruby - Ruby:如何为数组的加法逆生成方法
问题描述
我正在尝试创建一种方法,当您将数组传递给它时,会创建一个新数组,该数组是其加法逆(EX:[1,2,3,4] =>(加法逆)[-1,-2 ,-3,-4]。我尝试过包含 Enumerable 以及放置 .each。我也摆脱了 .map,然后我留下了未定义的方法“x”。我已经使用了多个代码次以及研究了几个站点,了解如何在数组中的每个元素传递给方法时对其进行操作。我最接近的是:
def add_inv (x)
arr_new = x.map {|e| -e}
puts arr_new
end
add_inv([5,-7,8,3])
输出:
-5
7
-8
-3
我正在寻找数组形式的输出。期望的输出:[-5, 7, -8, -3]
提前感谢您的积极反馈和批评。(Ruby 新手)
编辑:12:29 - 2020 年 4 月 13 日在进一步使用代码和下面的一些建议时,我能够使用以下代码操作数组,并将继续努力提出一种允许您传递的方法数组作为参数,然后将其转换为逆数组。这是给我所需输出的代码(尽管仍然不是方法)。
b = Array.new ([5,-7,8,3].map{|v| v*(-1)})
p b
输出:[-5,7,-8,-3]
一旦我弄清楚如何用一种方法做到这一点,就会更新。
解决方案
抱歉,第一次误解了您的问题,这里的问题是puts
当您尝试显示它们时会处理不同的数组,然后您可以使用p
orprint
做您想做的事情,这里是示例
def add_inv_with_puts(x)
puts x.map {|e| -e}
end
add_inv_with_puts([5,-7,8,3])
def add_inv_with_p(x)
p x.map {|e| -e}
end
add_inv_with_p([5,-7,8,3])
def add_inv_with_print(x)
print x.map {|e| -e}
end
add_inv_with_print([5,-7,8,3])
推荐阅读
- reactjs - Writing tests with react and context api
- regex - kotlin 中的积极后视在比赛中不起作用
- java - 我们可以在 for 循环的开头独立使用分号吗?
- r - 如何使用 fsolve 函数在 R 中找到多个非线性方程的解
- spring - 如何将 Thymeleaf 前端与 Spring Boot 项目分离
- xaml - 如何在 DirectX UWP 应用中呈现 XAML 页面
- wordpress - 如何从 Wordpress 搜索结果中排除特定页面
- android - 我的 JobService 在 Android 10 中无法运行,但在 Android 9 及更低版本中运行良好
- reactjs - 如何在 Reactjs 中创建多步表单
- java - 为 Spring Cloud 配置 maven 依赖项