2011-04-30 5 views
5

개체의 주 기능을 지정하지 않고 소스 파일의 package 키워드를 가져 오지 않고도 Scala의 import을 사용할 수 있습니까?스칼라에서 Python의 "가져 오기"와 같은 작업

일부 설명 : 파이썬에서, 나는, 같은 디렉토리에 다른 파일 "Run.py"에서

from Lib import * 

쓰기 일부 파일 "Lib.py"의 일부 기능을 정의 할 수 있습니다에서 함수를 사용 실행중인 라이브러리에서 실행 한 다음 python Run.py 명령으로 실행하십시오. 이 워크 플로는 한 시간 안에 작성할 수있는 작은 스크립트에 이상적입니다.

스칼라에서 다른 파일의 함수를 포함하려면 불필요한 객체에 배치하는 것이 필요합니다. 나는 이것을하지 않을 것이다.

+0

'# include'와'import'는 조금 다릅니다. –

+0

파일에서'package' 문을 사용하는 것이 잘못된 이유는 무엇입니까? –

+0

@ Erick Fleming, 이것은 실용적인 것 이상의 문체 문제입니다. 나는 간단한 스크립트에서 네임 스페이스 나 OOP를 필요로하지 않기 때문에, 강제로 나를 강제로 사용하지 않을 것입니다. 궁극적으로 스크립트에서 두 줄의 추가 코드가 생길 수 있지만 이러한 여분의 줄은 여전히 ​​나를 귀찮게합니다. 나는 지금 불평을 그만 둘 것이고, 스칼라가 잘하는 것에 대해 감사 할 것이다;) – emchristiansen

답변

1

스칼라로 파이썬을 작성하면 만족할만한 결과가 나오지 않을 것입니다. 객체는 "불필요한"것이 아닙니다. 객체 지향적 인 방식으로 작성되지 않은 프로그램입니다.

먼저 메서드는 내부 개체 여야합니다. 당신은 package object 안에 그것들을 넣을 수 있습니다. 그리고 그것들은 같은 이름의 패키지 안에있는 다른 것들에 보이게 될 것입니다.

둘째, 객체와 클래스만을 고려하면 클래스 파일에 클래스 파일이 있거나 클래스 파일이 함께 컴파일 된 모든 패키지가없는 객체와 클래스가 서로 볼 수 있습니다.

+0

나는 "아니오"로 생각하고있다. 네임 스페이스와 유비쿼터스 OOP의 이점을 누릴 수있는 더 복잡한 프로그램이 아니라 간단한 스크립트를 작성하는 것이 맞습니다. – emchristiansen

0

간단한 스크립트 만 작성하면 Scala의 REPL을 사용하십시오. 여기에서 함수를 정의하고 주요 객체가없는 객체 나 패키지를 포함하지 않고 함수를 호출 할 수 있습니다.

1

이는 최소한이다. 즉, 패키지와 같은 싱글 톤 객체 (예 : 독립 실행 형 함수의 네임 스페이스)를 처리하고 해당 내용을 패키지 인 것처럼 가져올 수 있습니다.

응용 프로그램을 확장하는 개체로 응용 프로그램을 정의하면 기본 메서드를 정의 할 필요가 없습니다. 코드를 객체의 몸체에 쓰면 App 특성 (특정 DelayedInit 특성을 확장)이 코드를 실행할 주요 메소드를 제공합니다.

스크립트를 작성하려는 경우 객체를 모두 버리고 컨테이너가없는 코드를 작성한 다음 비 대화식 모드에서 소스 파일을 인터프리터 (REPL)로 전달할 수 있습니다.

0

객체/클래스가 패키지에있을 필요가 없습니다, 그것은 매우 권장하지만 : 나는 그것을 얻을 수 있기

관련 문제