Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Ruby制作一个数组_Ruby_Arrays - Fatal编程技术网

用Ruby制作一个数组

用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 << "#{

我是Ruby的初学者,可能这个问题太简单了,但我已经花了一些时间在它上面,找不到解决方案。 我的Ruby脚本接受一个数字(例如10)和一个名字(例如Vincent)。我想要的是使数组看起来像

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"]