2013-07-17 2 views
0

나는 오랫동안 파이썬 배경에서 왔어. 나는 항상 type 함수를 파이썬에서 많이 사용하여 어떤 종류의 객체를 뱉어 냈다. (예 : myList : List [String] = List (Hello there, World! 함께 일하고 있어요.스크립트에서 객체를 인쇄하여 REPL에 표시되는 방법이 있습니까?

예를 들어

In[0]: print type("Hello") 
Out[0]: >>> string 

In[0]: print type(1234) 
Out[0]: >>> int 

내가 Scala 영역으로 내 길을, 나는 내가 할 수있는.로 결국 한 객체의 종류를 완전히 확실하지 않다 때가있다 빨리 놓아두면 조금 잃어 버릴 때마다 큰 도움이 될 것입니다.

예 : 이것

println(type(myObj)) /* Whatever the scala equivalent would be */ 
>>> myObj: List[String] = List(Hello there, World!) 

답변

1

스칼라 동등한 java.lang.Object 상위에 (Java 등)이 getClass 방법 일 것이다. 예를 들어

: 쉽게 스칼라 2.10로 반사를 사용하여 고성능 타입 정보에 액세스 할 수 있습니다

scala> 1.getClass 
res0: Class[Int] = int 

scala> Nil.getClass 
res1: Class[_ <: scala.collection.immutable.Nil.type] = class scala.collection.immutable.Nil$ 

scala> "hello".getClass 
res2: Class[_ <: String] = class java.lang.String 
0

.

클래스 패스에 scala-reflect JAR을 추가해야합니다.

약간의 도우미 방법은 여기 유용

import scala.reflect.runtime.universe._ 
def showTypeOf[T: TypeTag](obj: T) { 
    println(typeOf[T]) 
} 

사용법 :

showTypeOf(List(1, 2, 3)) // prints List[Int] 
관련 문제