2012-04-07 15 views

risposta

10

Il metodo tap è stato in Ruby since 1.8.7:

tap {| x | ...} => obj

rendimenti x al blocco, e poi ritorna x. Lo scopo principale di questo metodo è "attingere" a una catena di metodi, al fine di eseguire operazioni sui risultati intermedi all'interno della catena.

Si noti che 1.8.6 non ha avuto Object#tap. Presumibilmente, tap era in versioni precedenti di Rails (come patch di scimmia su Object) ma è stato aggiunto a Ruby stesso in 1.8.7. Poiché 1.8.6 è piuttosto antico ora, la versione di Rails è stata deprecata e, nelle versioni più recenti di Rails, è stata completamente rimossa.

1.9.3 ha ancora Object#tap quindi tap non è stato deprecato, è stata rimossa solo la versione con patch per scimmie di Rails.

+0

Scusa la mia ignoranza mentre imparo le basi. Presumo questo significa che posso ancora usarlo. Quando dici "tap into" intendi come una "colla" tra i metodi quando un metodo non può essere chiamato direttamente? – user1149642

+0

@ user1149642: sì, puoi ancora usarlo. I documenti che ho collegato per avere alcuni esempi. –

4

Il patch di scimmia Object#tap da ActiveSupport è obsoleto perché è stato parte di Ruby dal 1.9.0 e 1.8.7.