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 的測試是設計成呼叫實體方法的。一般來說,類別方法用於建構新的物件(就像其他語言裡的建構子)。

在談到方法時,有個實用的觀念值得知道:沒有參數的方法稱為一元方法,而接受多個參數、每個參數各由一個以「:」結尾的單字分隔的方法,則稱為關鍵字方法。

方法還有第三種類型:二元方法,它只接受 1 個參數,並以符號作為名稱(通常是數學符號,例如:+、-、& 等)。


出處

探索這道練習的來源。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Pharo Exercism

準備好開始 Two-Fer 了嗎?

註冊 Exercism,透過 50 個練習 和真人引導來學習並精通 Pharo,全部免費。