by shigemk2

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

Traitについて復習したい人生だった

第9章:Scalaのトレイト(trait) - Qiita

Javaでいうと、メソッドを実装できるインターフェイスです、って言われたって、Javaがわからないんで知らんがな。

/**
 * 同じメソッド名を持つトレイトとクラス
 */
trait TraitPrint {
  def print() = println("TraitPrint")
}
class ClassPrint {
  def print() = println("ClassPrint")
}

object TraitSample extends App {
  // トレイトは直接使えず、ミックスインしてクラスを作らないといけない。
  // val t = new TraitPrint
  // t.print
  // トレイト継承元を指定してメソッドを呼び出す
  val print = new ClassPrint with TraitPrint {
    override def print() = {
      super.print()                // => TraitPrint
      super[TraitPrint].print()    // => TraitPrint
      super[ClassPrint].print()    // => ClassPrint
    }
  }
  print.print
}

printについて学びたい

scala ConsolePrintSample.scala Scala

ってやっても何も出てこない学び。

object ConsolePrintSample extends App {
  // オブジェクトをtoString()した値を出力
  print("Hello World!\n")

  // 文字列と改行を出力
  println("Hello World!")

  // 文字列をフォーマットして出力
  printf("Hello %s!\n", "Scala")
}
object ConsolePrintSample {
  def main(args: Array[String]): Unit = {
    // オブジェクトをtoString()した値を出力
    print("Hello World!\n")

    // 文字列と改行を出力
    println("Hello World!")

    // 文字列をフォーマットして出力
    printf("Hello %s!\n", "Scala")
  }
}