scala笔记- 有趣的记录

前言

就是记录一些scala中有趣的特性。

import 排除

  import java.math.BigInteger.{
    ONE  => _,
    TEN
  }
  println(TEN)
  // println(ONE) compile error

可以把ONE 给排除掉。

抽象类型

package typeless

import java.io.File

import scala.io.Source

/**
  * Created by zhenghui on 2016/10/22.
  */
abstract class Reader {

  type In

  val source:In

  def reed:String
}

class StringReader(val source:String) extends Reader {
  override type In = String

  override def reed: String = source
}

class FileReader(val source:File) extends Reader{
  override type In = File

  override def reed: String = Source.fromFile(source).mkString
}

object Main extends App{
  println(new StringReader("hello scala").reed)
  println(new FileReader(new File("d:\\Foo.java")).reed)
}


 捕获非致命错误

  try {
    println(Source.fromFile("d:\\Foo.java").mkString)
  } catch {
    case NonFatal(e) => e.printStackTrace()
  }

猜你喜欢

转载自chenjingbo.iteye.com/blog/2332377