Two-Fer

Two-Fer

쉬움

소개

일부 영어 억양에서는 "two for"를 빠르게 말하면 "two fer"처럼 들려요. Two-for-one은 하나를 사면 하나를 무료로 더 준다는 뜻을 나타내는 표현이에요. 그래서 "two-fer"라는 말은 흔히 하나를 사면 하나를 더 주는 혜택을 의미해요.

쿠키 두 개를 하나 가격으로 살 수 있는 휴일 특별 행사를 하는 빵집을 상상해 봐요 ("two-fer one!"). 이 혜택을 받아들이고, (아주 관대하게도) 남은 쿠키 하나를 줄에 서 있는 다른 사람에게 주기로 해요.

지침

여분의 쿠키를 나눠 줄 때 무슨 말을 할지 정하는 것이 이번 과제예요.

그 사람의 이름을 안다면(예를 들어 이름이 Do-yun이라면) 이렇게 말해요:

One for Do-yun, one for me.

이름을 모른다면 대신 _you_라고 말해요.

One for you, one for me.

몇 가지 예를 볼까요?

이름 대화
Alice One for Alice, one for me.
Bohdan One for Bohdan, one for me.
One for you, one for me.
Zaphod One for Zaphod, one for me.

구현

Pharo에서는 클래스가 객체이고, 인스턴스 메서드와 클래스 메서드를 가질 수 있어요. 그런데 HelloWorld와는 달리 TwoFer의 테스트는 인스턴스 메서드를 호출하도록 작성되었어요. 보통 클래스 메서드는 새로운 객체를 만들 때 사용해요 (다른 언어의 생성자처럼요).

메서드를 이야기하다 보면 알아두면 좋은 점이 있어요. 매개변수가 없는 메서드는 단항 메서드라고 하고, 여러 매개변수를 받는 메서드는 매개변수마다 ':'로 끝나는 단어로 구분되는데, 이런 메서드를 키워드 메서드라고 해요.

세 번째 유형의 메서드도 있는데, 바로 이항 메서드예요. 이항 메서드는 매개변수를 하나만 받고, 이름으로 기호를 사용해요 (보통 +, -, & 같은 수학 기호를 써요).


출처

이 연습 문제의 출처를 살펴보세요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Pharo Exercism

Two-Fer 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Pharo 트랙을 연습 문제 50개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.