scala 传名参数

第一了解完传名参数,就想起了写log的代码,为了避免不合理的写日志带来的开销,经常需要使用LOG.isDebugEnabled()判断后才写日志
//传名参数方法
  def debug1(log: => String) {
    if (logLevel <= DEBUG) println(log)
  }
//普通的Sting参数方法
  def debug2(log: String) {
    if (logLevel <= DEBUG) println(log)
  }
 


反编译看看
  public void debug1(Function0<String> log) {
    if (logLevel() <= DEBUG()) Predef..MODULE$.println(log.apply()); 
  }

  public void debug2(String log)
  {
    if (logLevel() <= DEBUG()) Predef..MODULE$.println(log);
  }


以后log方法,就不用在每次都判断日志级别了,缺点就是生成额外的.class文件,如果非常斤斤计较性能,似乎还是isDebugEnabled性能好些

你可能感兴趣的:(scala)