2010-09-04 25 views
25

Mükemmel bir öğreticide, şu kodla karşılaştım:Bu bağlamda groovy << operatörü ne demektir?

class DateTagLib { 
    def thisYear = { 
    out << Calendar.getInstance().get(Calendar.YEAR) 
    } 
} 

<<'ün ne anlama geldiğini bilmiyorum ve google ile şansım yok.

Düzenleme: Artık <<'in bazen biraz değiştiğini biliyorum. Ama burada ne anlama geliyor?

+0

Tüm hayatım boyunca Groovy'nin bir çizgisini görmeden, "foo" nun "foo" kelimesi için sözdizimi olabileceği anlaşılıyor. Ya da dışarıda, aynı şeyle sonuçlanan korkak bir aşırı yüke sahip bir nesne nesnesi, yani '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' = '' parametresi değeri döndürür ... –

+0

bir '<< =' gibi görünür burada daha uygun ama ben de anlamıyorum. – djangofan

cevap

46

Yivli olarak, bitlikli işleçler, sınıfta tanımlanan leftShift (<<) ve rightShift (>>) yöntemleri ile geçersiz kılınabilir. Bu dizeleri, arabellekleri, akışları, dizileri, vb. Ve burada gördüğünüz şeyleri ekleme eylemleri için leftShift yöntemini kullanmanın deyimidir. Örneğin

:

  • bayt eklemek için kullanılır OutputStream üzerinde aşırı leftShift yöntem, bir InputStream veya akışına bir Object. aynı zamanda bir ekleme yapılması

Bir grails etiketi lib bakıyor olarak kullanır

  • List
  • , bu yüzden dışarı render ediliyor sayfasını temsil eder. Bu taglib'in sonuçları, müşteriye verilecek olan çıktı tamponuna eklenecektir.

    5

    üzerinden System.out < < operatör bu durumda üzerinden yazar olduğunu varsayarsak. Çıkış için < <'u (bir akışa yazma) ve >> giriş için (bir akıştan okuyarak) aşırı yüklenme deyimi C++ 'dan geliyor. Stdio kütüphaneleri (istream ostream vb.) Tanımlandığında, fikir, çıktı ve girdi için sol vardiya ve sağa kayma kullanmak için doğmuştur.

    İlgili konular