Two-Fer

Two-Fer

初級

はじめに

英語のいくつかの訛りでは、"two for"を素早く言うと"two fer"のように聞こえます。Two-for-oneとは、1つ買うともう1つ無料で手に入るという意味の言い方です。そのため、"two-fer"という言葉は、しばしば2つで1つのお得な提供を意味します。

クッキーを2枚、1枚分の値段で買える休日のキャンペーンをやっているパン屋を想像してみましょう("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のテストはインスタンスメソッドを呼び出すように書かれています。 通常、クラスメソッドは新しいオブジェクトを生成するために使われます(他の言語でいうコンストラクターのようなものです)。

メソッドの話をするときに知っておくと役に立ちますが、仮引数を持たないメソッドは単項メソッド、複数の仮引数を取り、それぞれが:で終わる語で区切られているメソッドはキーワードメソッドと呼ばれます。

3つ目の種類として二項メソッドもあります。これは仮引数を1つだけ取り、名前として記号(ふつうは+や-、&などの数学記号)を使います。


出典

この演習の出典を見てみましょう。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Pharo Exercism

Two-Ferを始める準備はできましたか?

Exercismに登録すれば、50個の演習、そして本物の人間によるメンタリングとともに、Pharoを学んでマスターできます。すべて無料です。