2015-05-15 180 views

回答

2
def first_and_last(a) 
    return a.first, a.last 
end 

def first_and_last(a) 
    return a[0], a[-1] 
end 
+0

注:'返回X,y'是 '魔' 做'返回[X,Y]'。 – user2864740

+0

您可以忽略回電。 '返回x,y'可以寫成'x,y' – Santhosh

+0

@Santhosh我不這麼認爲,你測試了嗎? – pangpang

3

它看起來像你想創建它們是第一個和最後的說法,分別爲兩個元素的數組:

def first_and_last(a) 
    [a.first, a.last] 
end 

first_and_last([1,2,3]) # => [1, 3] 
first_and_last(1..100) # => [1, 100] 
4

另一種方式:

['cat', 'dog', 'pig'].values_at(0,-1) 
    #=> ["cat", "pig"] 
+0

對於1和0長度的數組,可能會返回重複項或雙精度nil,否則,直接返回。 – tadman

0
def first_and_last(a) 
    return [a.first, a.last] 
end 

在你的代碼中,如果你沒有返回值,那麼你不會在ruby中返回任何值,那麼執行後的最後一行會自動返回。所以,你需要返回類似的Abobe

0

如果您使用數組,集,ActiveRecord的,或者一些其他集合,那麼你應該做到以下幾點:

def first_and_last(collection) 
    [ collection.first, collection.last ] 
end 

注:沒有必要的回報關鍵字,因爲Ruby方法中的最後執行的語句是返回給方法的調用者的。接下來,參數給你的方法應該是意圖揭示。也就是說,其他人應該很容易理解它是什麼。在這種情況下,它是一個集合(即陣列),其對第一個最後的消息作出響應。

不同的思考和代碼很好,

-Conrad

相關問題