gpt4 book ai didi

ruby - 重构 Ruby : Converting string array to int array

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

我正在重构一个西洋跳棋程序,我正在尝试将玩家移动请求(例如以“3、3、5、5”的形式)处理到一个 int 数组中。我有以下方法,但感觉不像我所知道的那样像 Ruby:

def translate_move_request_to_coordinates(move_request)
return_array = []
coords_array = move_request.chomp.split(',')
coords_array.each_with_index do |i, x|
return_array[x] = i.to_i
end
return_array
end

我用它进行了以下 RSpec 测试。

it "translates a move request string into an array of coordinates" do
player_input = "3, 3, 5, 5"
translated_array = @game.translate_move_request_to_coordinates(player_input)
translated_array.should == [3, 3, 5, 5]
end

测试通过,但我觉得代码很丑。任何帮助,将不胜感激。谢谢。

史蒂夫

最佳答案

您可以用映射操作替换 each 的显式迭代:

move_request.chomp.split(',').map { |x| x.to_i }

@tokland 提出的更简洁的写法是:

move_request.chomp.split(',').map(&:to_i)

它避免了显式地编写一个 block ,也避免了选择一个像 x 这样与任何名称都不相关的变量名。

请查看 stackoverflow 帖子 What does to_proc method mean?

关于ruby - 重构 Ruby : Converting string array to int array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892379/

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