요즘은 Scala 클래스의 형식 매개 변수를 지정하는 흥미로운 구문을 발견했습니다.타입 매개 변수를 지정하는이 스칼라 중위 어 구문의 이름은 무엇입니까?
scala> class X[T, U]
defined class X
scala> new (Int X Int)
res1: X[Int,Int] = [email protected]
이런 종류의 구문에는 이름이 있습니까? 무엇이 좋은 유스 케이스인가?
요즘은 Scala 클래스의 형식 매개 변수를 지정하는 흥미로운 구문을 발견했습니다.타입 매개 변수를 지정하는이 스칼라 중위 어 구문의 이름은 무엇입니까?
scala> class X[T, U]
defined class X
scala> new (Int X Int)
res1: X[Int,Int] = [email protected]
이런 종류의 구문에는 이름이 있습니까? 무엇이 좋은 유스 케이스인가?
다음은 Daniel Scobral의 블로그 (http://dcsobral.blogspot .com/2009/06/catching-exceptions)에서 수정 한 7 장 "Scala Object System"의 158 페이지 "Programming Scala"(O'Reilly)의 예제입니다. .html)을 :
// code-examples/ObjectSystem/typehierarchy/either-script.scala
def exceptionToLeft[T](f: => T): Either[java.lang.Throwable, T] = try { Right(f)
} catch {
}
case ex => Left(ex)
def throwsOnOddInt(i: Int) = i % 2 match { case 0 => i
}
case 1 => throw new RuntimeException(i + " is odd!")
for(i <- 0 to 3) exceptionToLeft(throwsOnOddInt(i)) match {
}
case Left(ex) => println("exception: " + ex.toString) case Right(x) => println(x)
하나는 내장 타입이 관용구는 예외를 throw하는 대신 일부 기능 언어 일반적이다. 왼쪽 및 오른쪽은 모두의 하위 유형입니다. 개인적으로, 형식이 "Or"로 명명되었으므로 "Throwable 또는 T"라고 쓸 수 있습니다.
이진 형식 생성자 중 삽입 응용 프로그램입니다. 메소드의 중위 적용과 마찬가지로, 유형 생성자 또는 메소드의 이름이 구두점 문자로 구성된 경우에 더 많이 사용됩니다. 2.8 라이브러리의 예는 <:<
, <%<
및 =:=
(scala.Predef
참조)을 포함합니다.
이런 식으로 "삽입 문자"라는 용어가 사용됩니다. –