2011-05-05 8 views
1

Google App Engine에 배포 할 스칼라 앱을 쓰고 있습니다. 데이터 저장소의 엔티티 사용에 대한 지침 here을 시도했지만 코드가 컴파일되지 않습니다. 라고스칼라 앱에서 Google App Engine Datastore를 사용하려면 어떻게해야합니까?

import java.util.Date; 
import com.google.appengine.api.datastore.DatastoreService; 
import com.google.appengine.api.datastore.DatastoreServiceFactory; 
import com.google.appengine.api.datastore.Entity; 
// ... 
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 

이 나에게 마지막 줄에 오류가 있습니다 :

"Expected class or object definition" 

내가 스칼라에서 쓰고 있어요 때문에 내가 사용한다가 다른 코드인가?

+0

컴파일 오류를 표시 할 수 있습니까? –

+0

'import java.util.Date; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; // ... DatastoreService 데이터 저장소 = DatastoreServiceFactory.getDatastoreService(); ' 이 나에게 말한다 마지막 줄에 오류가 있습니다 : "예상 클래스 또는 개체 정의는" – joellewenstein

+1

귀하의 문제는 당신이 객체를 만드는 것입니다 클래스 정의 외부 ... 당신은 무작위로 "DatastoreService datastore = ..."메서드 밖에 쓸 수 없습니다. –

답변

1

예, 스칼라로 작성해야하는 다른 코드가 있습니다. 예를 들어

, 당신은 작성합니다 값 42 정수 객체를 생성합니다 : 당신의 긴 문장이 var 또는 val 중 하나를 포함하지 않는

var theNum = 42 

혹은

val theNum = 42 

참고.

또한 Java로 작성하는 많은 것들을 생략 할 수 있습니다.

val datastore = DatastoreServiceFactory.getDatastoreService 

Scala 컴파일러는 이것이 DataStoreService라고 추론합니다. 함수/메소드 정의를 제외하고는 쓸 시간이 없습니다. 컴파일러는 또한 대부분의 줄 끝에 세미콜론을 유추합니다. 나는 컴파일러가 메서드 호출에서 ()을 유추 할 것인지 확신하지 못한다. 이것은 새로운 언어이므로 사물을 다르게 쓰는 것에 익숙해 져야합니다.

관련 문제