용하는 것은 보통 불필요하다. 하지만 어떤 영역 안에서 같은 이름의 대상이 여럿 참조되는 경우
모호성을 피하기 위해 유용할 때가 있다.
자기 타입 표기
self
type
annotation
를 사용하는 목적은 두 가지다. 첫째,
this
에 대해 예상하는 타입이
무엇인지 추가로 지정하기 위해서다. 둘째, 자기 타입 표기를 사용하면
this
에 대한 별명을 만들
수 있다.
예상하는 타입을 추가 지정하는 예를 보기 위해 앞의
SubjectObserver
클래스를 다시 살펴보
자. 예상 타입을 추가 지정하면, 앞에서 마주쳤던 컴파일 오류를 해결할 수 있다. 변경할 부분은
두 군데뿐이다.
//
src
/
main
/
scala
/
progscala2
/
typesystem
/
selftype
/
SubjectObserver
.
scala
package progscala2
.
typesystem
.
selftype
abstract class SubjectObserver
{
type S
<
:
Subject
type O
<
:
Observer
trait Subject ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.
O’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
I wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
I’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
I'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.