2011-04-21 1 views
17

, 나는 종종 이런 라인을 가지고 : Scala에서 여러 패키지를 한꺼번에 가져올 수 있습니까? 특정 프로젝트에서 내 스칼라 파일의 시작 부분에서

package com.mycompany 
package subproject 

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

객체 ProjectImports (또는 패키지 개체) 있음을 만들 수있는 방법이 있나요 "preimports"이러한 수입의 모든 그런 다음 다른 모든 프로젝트 파일에서 전체 목록 대신 간단히

import ProjectImports._ 

을 쓸 수 있습니다.

scala 패키지를 Predef에 가져 오는 방법과 관련이 있습니까? scala.`package`?

+1

'import ProjectImports._'가 개별적인 의존성을 숨기고있는 동안, 목록의 개별 패키지 가져 오기가 소스 파일의 의존성을 문서화 할 목적으로 사용될 수 있다는 점을 고려해보고자합니다. –

+0

'import _universe_' ^^ –

답변

8

필요한 모든 가져 오기가 일부 특성의 구성원이면 쉽게 수행 할 수 있습니다. 함수, 내부 클래스 등이있는 특성이 여러 개있는 경우 모두에서 상속 된 객체를 만들 수 있습니다. 따라서 모든 물건은 간단한 import MyObject._으로 가져올 수 있습니다. 이런 식으로 클래스를 가져 오는 것은 약간 까다로워졌습니다. 각 클래스에 대한 유형 멤버를 만들어야합니다.

이 기술에 대한 더 많은 예제는 scalaz 프로젝트의 Casbah Imports objectScalaz object을 참조하십시오.

+0

감사합니다. 자신의 lib를 개발할 때 사용하는 것은 좋은 속임수처럼 보입니다. 패키지 객체의 모든 특성을 혼합 할 수도 있습니다 (그렇다면'import scalaz._'와 두 번째'Scalaz._ import '가 필요합니다.) 그러나이 패턴을 따르지 않는 다른 libs는 무엇입니까? –

+1

I 이 문제에 대해 더 많은 것을 알기 전까지는 당신의 대답을 받아 들였습니다. 지금 당장은 제 질문에서하고 싶었던 것처럼 보이지는 않습니다. –

관련 문제