PDF P25 Listing 1.1 A Scala program with side effectsをちょっと翻訳してみた。
副作用とは何か、Scalaの基本が混じっている。
class Cafe { // classキーワードは、Javaのようなクラスを宣言します。その本体は波括弧{と}に含まれます。 def buyCoffee(cc: CreditCard): Coffee = { // クラスのメソッドは、defキーワードによって導入されます。 cc: CreditCardは、CreditCard型のccという名前のパラメータを定義します。 buyCoffeeメソッドの戻り値はCoffee型で、パラメータリストの後に与えられ、メソッド本体は=記号の後に中括弧内のブロックで構成されています。 val cup = new Coffee() // セミコロンは必要ありません。改行はブロック内の文を区切ります。 cc.charge(cup.price) // 副作用です。実際にクレジットカードをチャージします。 cup // returnを宣言する必要はありません。cupは、ブロックの最後の文であるので、それは自動的に返されます } }