Skip to Content
프로그래밍 스칼라: 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반)
book

프로그래밍 스칼라: 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반)

by 오현석, 딘 왐플러, 알렉스 페인
July 2016
Beginner to intermediate
776 pages
17h 26m
Korean
Hanbit Media, Inc.
Content preview from 프로그래밍 스칼라: 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반)
424
2
기본기 다지기
두 번째로 대입한
(
x
:
CSuper
)
=
>
CSub
반공변적인 인자와 공변적인 반환 타입 선언을 준수
한다. 그렇지만 그런 대입이 왜 안전할까?
핵심적인 통찰은
f
가 어떻게 쓰일 것인지와, 그 뒤에 있는 실제 함수에 대해 우리가 어떤 가정
을 할 수 있는지 기억하는 것이다. 함수의 타입이
C
=
>
C
라고 말할 때는, 올바른
C
값을
f
에 넘
길 수 있고
f
C
가 아닌 다른 것을 결코 반환하지 않는다는 계약을 정의하는 것이다.
따라서 실제 함수가
(
x
:
CSuper
)
=
>
CSub
타입이라면, 해당 함수는
C
타입의 값을 인자로 받
을 수 있을 뿐 아니라, 부모 타입인
CSuper
나 그 서브타입 (그런 타입이 있다면 )의 어떤 인스턴
스도 받을 수 있다. 따라서 우리는 그 함수에
C
타입의 인스턴스만 전달할 수 있기 때문에,
f
인자로 받기로 약속한 범위를 넘어가는 값을 전달하는 일이 결코 없다. 어떤 의미에서
f
는 우
리가 필요로 하는 것보다 좀 더 ‘포용력 있는’ 함수다.
비슷하게
f
CSub
의 인스턴스만 반환한다면 이 또한 안전하다. 호출하는 쪽에서
C
의 인스턴
스를 처리할 수 있기 때문에 분명히
CSub
의 인스턴스도 항상 처리할 수 있기 때문이다. 이런 의
미에서
f
는 우리가 필요로 하는 것보다 더 ‘제약이 심한’ 함수다.
예제의 마지막 줄은 입력과 출력 타입에 대한 규칙을 둘 다 깨버린다. 만약 이런
f
를 치환하도록
허용하면 어떤 일이 벌어질지 생각해보자.
이 경우 실제
f
는 오직
CSub
의 인스턴스를
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.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’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
QuotationMarkI 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
QuotationMarkI’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
QuotationMarkI'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.
Mark W.
Embedded Software Engineer

You might also like

스파크를 이용한 자연어 처리 : 대규모 텍스트를 다루는 가장 효율적인 딥러닝을 만나다

스파크를 이용한 자연어 처리 : 대규모 텍스트를 다루는 가장 효율적인 딥러닝을 만나다

이창현, 앨릭스 토머스

Publisher Resources

ISBN: 9788968482755