parse_emails('long list')
def parse_emails(emails)
.... stuff
return valid_emails, invalid_emails
end
我看到有两个数组,但我如何得到它们?我试过:Rails有2个返回值的方法 - 如何获取它们?
mylist = parse_emails('long list')
mylist[valid_emails]
但是那个错误。想法? thxs
parse_emails('long list')
def parse_emails(emails)
.... stuff
return valid_emails, invalid_emails
end
我看到有两个数组,但我如何得到它们?我试过:Rails有2个返回值的方法 - 如何获取它们?
mylist = parse_emails('long list')
mylist[valid_emails]
但是那个错误。想法? thxs
valid_emails, invalid_emails = parse_emails(whatever)
请花时间阅读一些基本的介绍到Ruby的语法;)
这种列表扩展来自Perl,可能会让不熟悉列表赋值细节的人感到困惑。它可能是最不理解的语法元素之一。 – tadman 2010-12-16 21:01:28
这被称为'元组'。在它们周围添加parens使事情变得更加明显:包含两个值的单个对象返回并分配给另一个带有两个插座的对象。 '(a,b)= foo()' – 9000 2010-12-16 23:15:20
确定这很酷,但实际上并没有工作 – AnApprentice 2010-12-17 00:45:20
构造一个包含两个列表的类,一个用于有效的电子邮件,另一个用于无效的电子邮件,并在parse_emails函数中填充此类的对象并将其返回。
然后,在外面,您可以访问这两个列表作为返回值的属性。
注意显示一个例子,这对我来说是新的 – AnApprentice 2010-12-16 17:39:34
你可以在两个数组传递给方法,然后填充他们在那里:
invalid_emails = []
valid_emails = []
parse_emails('long list', valid_emails, invalid_emails)
def parse_emails(emails, valid, invalid)
.... stuff
while ...
if is_valid?
valid << current_email
else
invalid << current_email
end
end
end
MYLIST [ 0],mylist [1]? – 2010-12-16 17:34:30
是做到这一点的正确方法吗?看起来像这样会对后面的问题感到困惑 – AnApprentice 2010-12-16 17:35:14