2011-04-21 10 views
17

, sık sık bu gibi satırlar vardır: Scala'da birden fazla paketten tek seferde alabilir miyim? Belirli bir projede benim Scala dosyalarının başında

package com.mycompany 
package subproject 

import common._ 
import uiutils._ 
import databinding._ 
import modeling._ 

bir nesne ProjectImports (veya paket nesnesi) o oluşturmak için bir yolu var mı “preimports” bu ithalatın tüm sonra sadece benim diğer proje dosyalarının her yerine bütün listenin
import ProjectImports._ 

, yazabilir böyle?

Bu, scala paketinin Predefscala.`package` ile içe aktarımıyla mı ilgili?

+1

Tek tek bağımlılıkları gizlerken, tekil paketlerin içe aktarma listelerinin listelenmesi, kaynak dosyaların bağımlılıklarını belgelemenin amacına hizmet edebileceğini düşünmek için eklemek istiyorum. –

+0

'import _universe_' ^^ –

cevap

8

İhtiyacınız olan tüm içe aktarmaların bazı özelliklerin üyeleri olması durumunda bunu kolayca yapabilirsiniz. Fonksiyonlar, iç sınıflar vb. Ile birkaç özelliğiniz varsa, hepsinden miras alınan nesneyi oluşturabilirsiniz. Yani tüm eşyalarını basit import MyObject._ ile ithal edilebilir. Sınıfı bu şekilde içe aktarmak biraz zor oldu - her sınıf için bir tür üye oluşturmanız gerekir.

Bu teknikle ilgili daha fazla örnek için, scalaz projesinde Casbah Imports object ve Scalaz object'a bakınız.

+0

Teşekkürler, kendi lib'unuzu geliştirirken kullanmak için iyi bir numara gibi görünüyor. Paket nesnesindeki tüm özelliklerde bile karışabilirdiniz (o zaman sadece 'scalaz._' içe aktarmalıyız ve artık ikinci' Scalaz._'' türünü kullanmaya gerek duymayacaktık.Ama bu modeli takip etmeyen diğer kütüphaneler hakkında ne dersiniz? –

+1

I Bu konuda daha fazla bilgi edinene kadar cevabınızı kabul edildi olarak işaretleyin, şimdilik benim sorum olarak yapmak istediğim şey olduğu gibi yapılamıyor gibi görünüyor. –

İlgili konular