2012-04-13 4 views
8

플레이 프레임 워크의 스칼라 문서 (Play Docs)를 살펴 보았을 때 이전에 보지 못한 구문을 보았습니다.[String ~ Int]리스트 란 무엇입니까?

val populations:List[String~Int] = { 
    SQL("select * from Country").as(str("name") ~ int("population") *) 
} 

누군가가 "~"을 무엇을 말해 주 시겠어요 List[String~Int]에서 의미?

답변

22

이 도움이 잡아 줄께 될 수있다

scala> class ~[A, B] 
defined class $tilde 

scala> List.empty[String~Int] 
res1: List[~[String,Int]] = List() 

사실, ~는 표준 라이브러리의 일부가 아닌,이 중위 표기법을 수있는 플레이 프레임 워크에서 일반적인 클래스입니다. 스칼라에서는 2 개의 일반 매개 변수를 사용하는 제네릭 클래스를 중위 표기법과 함께 사용할 수 있습니다. 예를 들어, 다음도 작동합니다 : 귀하의 경우

scala> class X[A, B] 
defined class X 

scala> List.empty[String X Int] 
res1: List[X[String,Int]] = List() 

, 당신은 Play framework API~의 정의를 찾을 수 있습니다.

+0

와우! 그게 빠르다. 그리고 그 예가 도움이됩니다. – rahul

+0

반갑습니다. BTW, 필요에 맞는 답을 수락 할 수 있습니다. ;) – Nicolas

+0

사실, Play 클래스가 아닙니다. 스칼라 표준 라이브러리 (특히 파서 결합 자 라이브러리)에서 가져온 것입니다. 여기에 [scaladoc] (http://www.scala-lang.org/api/current/index.html#scala.util.parsing.combinator.Parsers$$tilde)가 있습니다. –