복붙노트

[SCALA] "=> 외부"정말 무엇을 의미합니까?

SCALA

"=> 외부"정말 무엇을 의미합니까?

은 "외부 =>"기능에 대한 모든 문서가 있습니까? 그것은 infered 유형의 자기 형의 주석처럼 보인다. 나는 느낌이하지만 내가 잘못 오전.

이 경우 될 경우, 슈퍼에 대한 액세스를 표현하는 다른 방법은 무엇입니까?

trait A extends (B => C) {
  outer =>
  def apply(x: B): C = outer(x)
}

해결법

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

    1.슈퍼하지만, 외부 범위를하지 않습니다. 이것은 다른 범위를 앨리어싱에 대한 방법입니다. 예를 들면 :

    슈퍼하지만, 외부 범위를하지 않습니다. 이것은 다른 범위를 앨리어싱에 대한 방법입니다. 예를 들면 :

    class A(val x:Int) { thisA =>
     class B { 
       val x = 2 
       val y = x + thisA.x // without thisA how could we use A.x instead of B.x ? (*)
     }
    }
    

    여기에 더 좋은 그림이있다.

    (*)가 같은 효과를 가질 수있는 또 다른 방법이 존재하지만,이 질문에 넘어.

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

    2.그것은이 액세스 할 수있는 다른 방법입니다. 그것은이 외부가 내부 클래스에서 다른이에 의해 그림자가 될 경우에 유용합니다. 그런 식으로, 당신은 단지 외부에게 이름이 추가 (그것이 이름을 변경하지 그래서이 범위에있을 때이 계속 사용할 것 원본을) 제공 할 수 있습니다.

    그것은이 액세스 할 수있는 다른 방법입니다. 그것은이 외부가 내부 클래스에서 다른이에 의해 그림자가 될 경우에 유용합니다. 그런 식으로, 당신은 단지 외부에게 이름이 추가 (그것이 이름을 변경하지 그래서이 범위에있을 때이 계속 사용할 것 원본을) 제공 할 수 있습니다.

  3. from https://stackoverflow.com/questions/4353915/what-does-outer-really-mean by cc-by-sa and MIT license