我不明白这有什么问题
nameTag = "div[class='designer_about'] a"
designsTag = "li[class='span-2']"
pullTags = Array.new(nameTag, designsTag)错误:
designers_list_mirraw.rb:8:in `initialize': can't convert String into Integer (TypeError)
from designers_list_mirraw.rb:8:in `new'
from designers_list_mirraw.rb:8:in `<main>'我是ruby的新手
发布于 2013-07-03 01:05:28
正如juanpastas提到的,Array::new(size,obj)需要一个数字和一个对象。您可以在链接到的教程中看到这一点:
names = Array.new(4, "mac")names现在是一个具有四次"mac"的数组。
如果您打算创建一个包含以下两项的数组:
pullTags = Array.[nameTag, designsTag]
# which is equivalent to
pullTags = Array[nameTag, designsTag]
# which are the more verbose versions of
pullTags = [nameTag, designsTag]参见[](*args)。
发布于 2013-07-03 01:02:52
Ary.new(length, item)是用于需要数组在特定时间内具有相同项重复的时间。不是Array.new(item, item)。第一个参数表示您想要的数组长度。
在您的情况下,您应该使用:
name_tag = "div[class='designer_about'] a"
designs_tag = "li[class='span-2']"
pull_tags = [name_tag, designs_tag]顺便说一句,根据Ruby的约定,snake_case_variable_name比camelCaseVariabelName更受欢迎
发布于 2013-07-03 00:57:15
请参阅Array::new
它接收整数,然后接收一个对象,或者也接收一个数组,因此您可以使用:
Array.new(2,'some') => ['some','some']
Array.new(an_array_here)https://stackoverflow.com/questions/17431314
复制相似问题