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