복붙노트

[SCALA] 형 PARAMS을 지정하기위한이 스칼라 중위 구문의 이름은 무엇입니까?

SCALA

형 PARAMS을 지정하기위한이 스칼라 중위 구문의 이름은 무엇입니까?

나는 스칼라 클래스의 유형 매개 변수를 지정하는 다른 일이 흥미로운 구문을 발견했습니다.

scala> class X[T, U]
defined class X

scala> new (Int X Int)
res1: X[Int,Int] = X@856447

구문 이런 종류의 이름이 있습니까? 그것을위한 좋은 사용 사례는 무엇입니까?

해결법

  1. ==============================

    1.그것은 바이너리 형식 생성자의 단지 중위 응용 프로그램입니다. 타입 생성자 또는 메서드의 이름은 구두점 문자를 포함하는 경우 방법의 중위 응용 프로그램과 마찬가지로, 그것은 더 일반적으로 사용됩니다. 2.8 라이브러리의 예는 <<<% <및 = = (scala.Predef 참조).

    그것은 바이너리 형식 생성자의 단지 중위 응용 프로그램입니다. 타입 생성자 또는 메서드의 이름은 구두점 문자를 포함하는 경우 방법의 중위 응용 프로그램과 마찬가지로, 그것은 더 일반적으로 사용됩니다. 2.8 라이브러리의 예는 <<<% <및 = = (scala.Predef 참조).

  2. ==============================

    2.여기에 우리가 다니엘 Scobral의 블로그에서 적응 제 7 장 "프로그래밍 스칼라"(라일리), 158 페이지, "스칼라 개체 시스템"(http://dcsobral.blogspot.com/2009/06/catching에서 예입니다 -exceptions.html) :

    여기에 우리가 다니엘 Scobral의 블로그에서 적응 제 7 장 "프로그래밍 스칼라"(라일리), 158 페이지, "스칼라 개체 시스템"(http://dcsobral.blogspot.com/2009/06/catching에서 예입니다 -exceptions.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)
    }
    

    어느있는 형태로 내장이 관용구가 예외를 던지는에 대한 대안으로 일부 기능 언어 일반적이다. 왼쪽 및 오른쪽 당신은 하나의 서브 타입이 있습니다. 개인적으로, 나는 당신이 "Throwable 또는 T"를 쓸 수 있도록 유형, 이름 "또는"하였다 바랍니다.

  3. from https://stackoverflow.com/questions/3200380/whats-the-name-of-this-scala-infix-syntax-for-specifying-type-params by cc-by-sa and MIT license