Dans un tutoriel groovy, j'ai rencontré le code suivant:
class DateTagLib {
def thisYear = {
out << Calendar.getInstance().get(Calendar.YEAR)
}
}
Je ne sais pas ce que le <<
signifie, et je n'ai pas de chance avec google.
Edit: Je sais maintenant que <<
est parfois un peu décalé. Mais qu'est-ce que cela signifie ici?
Dans groovy, les opérateurs au niveau du bit peuvent être remplacés par les méthodes leftShift (<<)
et rightShift (>>)
définies sur la classe. Il est idiomatique d'utiliser la méthode leftShift
pour ajouter des actions sur des chaînes, des tampons, des flux, des tableaux, etc. et c'est ce que vous voyez ici.
Par exemple:
leftShift
surchargées sur OutputStream
qui sont utilisées pour ajouter des octets, un InputStream
ou un Object
au flux.List
, qui l'utilise également comme ajoutVous regardez une bibliothèque de balises Grails, donc out représente la page en cours de rendu. Les résultats de ce taglib seront ajoutés au tampon de sortie qui sera rendu au client.
En supposant que out est System.out l'opérateur << écrit dans out dans ce cas. L'idiome à surcharger << pour la sortie (écriture dans un flux) et >> pour l'entrée (lecture dans un flux) vient de C++. Lorsque les bibliothèques stdio (istream ostream etc.) ont été définies, l'idée est née d'utiliser le décalage gauche et le décalage droit pour la sortie et l'entrée.