用Ruby制作一个数组
我是Ruby的初学者,可能这个问题太简单了,但我已经花了一些时间在它上面,找不到解决方案。 我的Ruby脚本接受一个数字(例如10)和一个名字(例如Vincent)。我想要的是使数组看起来像用Ruby制作一个数组,ruby,arrays,Ruby,Arrays,我是Ruby的初学者,可能这个问题太简单了,但我已经花了一些时间在它上面,找不到解决方案。 我的Ruby脚本接受一个数字(例如10)和一个名字(例如Vincent)。我想要的是使数组看起来像 Vincent0 Vincent1.. Vincent9 我想不出一个成功的办法 def数组_生成器(数字、字符串) def array_maker(number, string) result = [] for i in 0..number do result << "#{
Vincent0
Vincent1..
Vincent9
我想不出一个成功的办法 def数组_生成器(数字、字符串)
def array_maker(number, string)
result = []
for i in 0..number do
result << "#{string}#{i}"
end
result
end
结果=[]
对于0中的i..数字是多少
结果def数组\u生成器(数字、字符串)
结果=[]
对于0中的i..数字是多少
结果使用数组。使用块()新建:
使用Enumerable#reduce
():
使用它:
# Using the array (assigning to variables)
array = create_array(10, 'Vincent') # => ['Vincent0', 'Vincent1', 'Vincent2' ...]
name = array[1] # => 'Vincent1'
使用带有块()的Array.new
:
使用Enumerable#reduce
():
使用它:
# Using the array (assigning to variables)
array = create_array(10, 'Vincent') # => ['Vincent0', 'Vincent1', 'Vincent2' ...]
name = array[1] # => 'Vincent1'
作为记录,这是一个功能性更强的解决方案:
>> def arrayify(str, n)
.. ([str] * n).zip(0...n).map(&:join)
.. end
#=> nil
>> arrayify('Vincent', 10)
#=> ["Vincent0", "Vincent1", "Vincent2", "Vincent3", "Vincent4", "Vincent5", "Vincent6", "Vincent7", "Vincent8", "Vincent9"]
作为记录,这是一个功能性更强的解决方案:
>> def arrayify(str, n)
.. ([str] * n).zip(0...n).map(&:join)
.. end
#=> nil
>> arrayify('Vincent', 10)
#=> ["Vincent0", "Vincent1", "Vincent2", "Vincent3", "Vincent4", "Vincent5", "Vincent6", "Vincent7", "Vincent8", "Vincent9"]
给你
["Vincent0", "Vincent1", "Vincent2", "Vincent3", "Vincent4", "Vincent5",
"Vincent6", "Vincent7", "Vincent8", "Vincent9"]
有关数组的文档可在以下位置获得(谷歌搜索数组RDoc将提供URL)
大括号中的位({i}“Vincent{i}}
)称为块。你肯定想了解他们
给你
["Vincent0", "Vincent1", "Vincent2", "Vincent3", "Vincent4", "Vincent5",
"Vincent6", "Vincent7", "Vincent8", "Vincent9"]
有关数组的文档可在以下位置获得(谷歌搜索数组RDoc将提供URL)
大括号中的位({i}“Vincent{i}}
)称为块。您肯定想了解他们。谢谢!完美且快速的答案。好的,我如何从name+数字中形成一个变量,比如name=Vincent1?我一定会在4分钟内接受@sparkymat..只是一个建议..您可以使用(0…number)
或number.times
而不是0.upto(number-1)
@sparkymat..也可以使用枚举映射
函数在第一个函数中创建数组,如def arrayfy(string,number);arr=(0…number).map{i}“{string}{i}”;arr;完
@rubyprince:谢谢!我知道有办法做到这一点,但就是不记得怎么做。谢谢!完美且快速的答案。好的,我如何从name+数字中形成一个变量,比如name=Vincent1?我一定会在4分钟内接受@sparkymat..只是一个建议..您可以使用(0…number)
或number.times
而不是0.upto(number-1)
@sparkymat..也可以使用枚举映射
函数在第一个函数中创建数组,如def arrayfy(string,number);arr=(0…number).map{i}“{string}{i}”;arr;完
@rubyprince:谢谢!我知道有一种方法可以做到这一点,但就是不记得怎么做。这完全偏离了最初的问题。你在我发表评论时更改了它,或者堆栈溢出中的某些内容完全偏离了,这是array=[“一”,“二”,“三”]我在你发表评论之前更改了它,它不符合,我只是想告诉你solution@daniel:S.O.允许海报编辑长达X个持续时间的答案,并且不显示“编辑前”链接,除非答案在X个持续时间过后编辑。不确定X值是多少(甚至可能是X个编辑次数而不是持续时间)。这与原始问题完全不符。您在我发表评论时更改了它,或者堆栈溢出中的某些内容完全不符,这是数组=[“一”、“二”、“三”]在您发表评论之前我更改了它。它不符合,我只是想告诉你solution@daniel:S.O.允许海报编辑长达X个持续时间的答案,并且不显示“编辑前”链接,除非答案在X个持续时间过后编辑。不确定X值是多少(甚至可能是X个编辑次数而不是持续时间)。出于好奇,你是否知道Array.new(size){index | block}
form?@Andrew:通过阅读我在这里的帖子,我确信你知道答案是肯定的。只是有时候,当问题已经被接受时——就像这个问题一样——我会尝试添加“原创”或“有趣”的解决方案。我认为这主要是在RubyLearning教学时养成的习惯,因为这是引导人们关注新方法等的好方法。我可以告诉你,你有很高的声誉,但有时有经验的用户认为他们不必咨询RDOC。这就是我所认为的情况。没有什么能阻止你在一个问题中提出多种方法出于好奇,你是否知道数组。新(大小){| index | block}
表单?@安德鲁:通过阅读我在这里的帖子,我确信你知道答案是肯定的。只是有时候,当问题已经被接受时——就像这个问题一样——我会尝试添加“原创”或“有趣”的解决方案。我认为这主要是在RubyLearning教学时养成的习惯,因为这是引导人们关注新方法等的好方法。我可以告诉你,你有很高的声誉,但有时有经验的用户认为他们不必咨询RDOC。这就是我所认为的情况。没有什么能阻止你在一个问题中提出多种方法你可以使用每个带有对象的对象
而不是减少
。你可以使用每个带有对象的对象
而不是减少
。我不知道数组的初始化。我过去经常使用可枚举映射
案例..酷..谢谢..我不知道这个数组的初始化..我以前用Enumerable#map
来处理这些案例..酷..谢谢。。
>> def arrayify(str, n)
.. ([str] * n).zip(0...n).map(&:join)
.. end
#=> nil
>> arrayify('Vincent', 10)
#=> ["Vincent0", "Vincent1", "Vincent2", "Vincent3", "Vincent4", "Vincent5", "Vincent6", "Vincent7", "Vincent8", "Vincent9"]
Array.new(10) {|i| "Vincent#{i}"}
["Vincent0", "Vincent1", "Vincent2", "Vincent3", "Vincent4", "Vincent5",
"Vincent6", "Vincent7", "Vincent8", "Vincent9"]