"불법 한 정의 시작"을주는 Scala
스칼라를 시작하려고하는데 시작 게이트에서 벗어날 수 없습니다.
줄로 구성된 파일
package x
나에게 준다
오류 : 잘못된 정의 시작
x가 무엇인지, 파일을 어디에 두 었는지에 관계없이 (패키지 정의와 일치하기 위해 파일을 디렉토리 계층 구조에 배치해야한다는 이론이 있었지만 아니요). 웹 사이트의 예제 코드와 REPL에서 동일한 오류가 발생합니다.
package
Scala 스크립트 ( scala
명령을 사용하여 실행) 또는 REPL에서 멤버 자격 을 선언하려는 것 같습니다 .
컴파일 된 클래스와 객체만을 정의하는 파일 만 scalac
패키지에 속하는 것으로 정의 할 수 있습니다.
스크립트 또는 REPL 세션에서 코드를 실행하면 실제로는 패키지 선언이 합법적이지 않은 개체의 메서드 내에서 컴파일됩니다.
Scala 2.11.0-M7부터 사용할 수 있습니다 :paste -raw
(문제 SI-5299 수정 ). 이 옵션을 사용하면 REPL에서 패키지를 정의 할 수 있습니다.
scala> :paste -raw
// Entering paste mode (ctrl-D to finish)
package Foo
class Bar
// Exiting paste mode, now interpreting.
scala> import Foo._
import Foo._
scala> new Bar
res1: Foo.Bar = Foo.Bar@3ee2cf81
나는 같은 문제가 있었다. import packageName._
패키지에서 워크 시트를 선언하는 대신 가져 오기로 해결했습니다 .
예를 들어 스칼라 프로그램을 실행할 때 동일한 문제가 발생했습니다. 터미널에서 "Game.scala" .
컴파일 부분은 괜찮 았고 코드를 실행할 때 오류가 표시되었습니다. 아래를 참조하십시오.
☐ 틀 렸습니다 :
user@pc:~$scala Game.scala
/home/$USER/.../src/ul/org/bloxorz/Game.scala:1: error: illegal start of definition
package ul.org.bloxorz
Scala 코드는 Java 코드와 거의 동일하게 터미널에서 호출되어야합니다 (첫 번째 예제에서했던 것처럼 파일 이름이 아닌 정규화 된 클래스 이름을 제공해야합니다).
☑ 정답 :
user@pc:~$scala ul.org.bloxorz.Game
이 오류가 발생하지 않습니다. 어떻게 컴파일하고 있습니까? 그런데 어떤 웹 사이트입니까? REPL의 경우 패키지를 허용하지 않습니다. 패키지는 컴파일 된 코드 전용입니다.
참조 URL : https://stackoverflow.com/questions/2632247/scala-giving-me-illegal-start-of-definition
'programing' 카테고리의 다른 글
ICommand MVVM 구현 (0) | 2021.01.14 |
---|---|
스택 가비지가 Java에서 수집됩니까? (0) | 2021.01.14 |
Clojure에서 벡터 앞에 추가하는 관용적 방법은 무엇입니까? (0) | 2021.01.14 |
개발 환경에서 Rails 3로 메일 보내기 (0) | 2021.01.14 |
스칼라의 foreach 대 표현식 (0) | 2021.01.14 |