[SCALA] 자기 형 주석이 자기의 차이?
SCALA자기 형 주석이 자기의 차이?
다양한 스칼라 문학에서 나는 "자기"를 사용하여 일부 자기 형 "이"을 사용하여 주석 등을 참조하십시오
trait A { this: B => ... }
trait A { self: B => ... }
"이"또는 "자기"를 사용하여 사이의 실제 차이가 있나요? 전혀 사용 어떤 이름 중요합니까? 이것은 단지 유효한가요?
trait A { foo: B => ... }
해결법
-
==============================
1.세 가지 형태는 유효하며, B는 클래스 A.이 유형으로 간주되는 효과를 가질
세 가지 형태는 유효하며, B는 클래스 A.이 유형으로 간주되는 효과를 가질
처음 두 변종
trait A { self: B => ... } trait A { foo: B => ... }
이 클래스 내에서이 참조에 액세스하는 데 유용 형질 A.이 별칭으로서 (각각 foo는) 자기 소개. 즉 그 안에 중첩 된 클래스에서 특성 A의이 참조에 액세스 할 때 당신은 그 대신 A.this 자체를 사용할 수 있습니다. 예:
class MyFrame extends JFrame { frame => getContentPane().add( new JButton( "Hide" ) { addActionListener( new ActionListener { def actionPerformed( e: ActionEvent ) { // this.setVisible( false ) --> shadowed by JButton! frame.setVisible( false ) } }) }) }
세 번째 변형,
trait A { this: B => ... }
이 별칭을 소개하지 않는다; 그냥 자기 유형을 설정합니다.
-
==============================
2.이 항상 안쪽 템플릿에 의해 정의 된 객체를 참조한다는 점에서 차이가 있습니다.
이 항상 안쪽 템플릿에 의해 정의 된 객체를 참조한다는 점에서 차이가 있습니다.
당신이 당신의 자기 형 foo를 호출한다면, 당신은 여전히 물론, 당신이 그것에 의해 정의 된 객체를 참조 할 경우 내부 템플릿에,하지 않는 한이 (로 참조 할 수 - 그리고 당신이하지 않는 한하지 분명 내부 템플릿의 자기 형 같은 이름)이 아닌 다른 방법의 원형을 제공합니다.
from https://stackoverflow.com/questions/4017357/difference-between-this-and-self-in-self-type-annotations by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스파크 : 단일 키 RDD와 2 튜플 키 RDD 가입을위한 최선의 전략은 무엇입니까? (0) | 2019.11.03 |
---|---|
[SCALA] 상관, AnyVal는, AnyRef는, 객체와 자바 코드에서 사용될 경우 그들이 어떻게지도 할 사이의 관계는 무엇인가? (0) | 2019.11.03 |
[SCALA] 임의의 스칼라 코드의 위치 동안 통역에 드롭 (0) | 2019.11.02 |
[SCALA] 게으른 발은 무엇입니까? (0) | 2019.11.02 |
[SCALA] 스파크 DataFrame에서 중첩 열 삭제 (0) | 2019.11.02 |