by shigemk2

当面は技術的なことしか書かない

ScalaのTraitをファイルで書く

概要

脱REPL的なものを目指す。

Scalaメモ(コンパイル、main) - garbage truck

コード

コードはこんな感じ。

trait.scala

trait Programmer {
  def coding = println("コーディングします")
}

// クラスが明示的に継承を行わない場合、extendsを使用してトレイトをミックスイン
class Person(val name: String) extends Programmer

trait Designer {
  def design = println("デザインします")
}

object Trait {
  def main(args: Array[String]) {
    // ほかのクラス/オブジェクトを継承する場合、withキーワードでトレイトをミックスインする
    var p1 = new Person("taro")
    p1.coding
    var p2 = new Person("taro") with Designer
    p2.coding
    p2.design
  }
}

コマンド

$ scala -version
Scala code runner version 2.10.3 -- Copyright 2002-2013, LAMP/EPFL
$ scalac trait.scala
(コンパイルしてクラスファイルTraitが生成される)
$ scala Trait
コーディングします
コーディングします
デザインします

参考文献