Scala 解释REPL发生的情况

Scala 解释REPL发生的情况,scala,Scala,我一直在REPL学习/试验Scala。 顺便说一下,顺便说一句,到目前为止我印象深刻。我发现语言很美 发生了以下情况,需要对发生的情况进行解释 提前感谢您提供的任何帮助 在REPL输入时: def withMarks(mark: String)(body: => Unit){ println(mark + " Init") body println(mark + " End") } val a = "Testing clojure with paremeter by name

我一直在REPL学习/试验Scala。 顺便说一下,顺便说一句,到目前为止我印象深刻。我发现语言很美

发生了以下情况,需要对发生的情况进行解释

提前感谢您提供的任何帮助

在REPL输入时:

def withMarks(mark: String)(body:  => Unit){
  println(mark + " Init")
  body
  println(mark + " End")
}
val a = "Testing clojure with paremeter by name as control structure"
withMarks("***"){
  println(a)
  println("more expressions")
}
一切如期进行

我怀疑我是出于无知而发生了奇怪的事情。我输入了更多的内容:

class FileAsIterable{
  def iterator = scala.io.Source.fromFile("/Users/MacBookProRetina/Google Drive/NewControl.scala").getLines()
}

val newIterator = new FileAsIterable with Iterable[String]
评估最后一行时,REPL打印:

newIterator: FileAsIterable with Iterable[String] = (def withMarks(mark: String)(body:  => Unit){,   println(mark + " Init"),   body,   println(mark + " End"), }, val a = "Hola Mundo", withMarks("***"){,   println(a), })
即使在Mac中重新启动终端,并在不同的目录位置运行scala REPL,我仍然会得到相同的结果


不知道newIterator val是如何连接到withMarks def的。

Nevermind。我只是被文件的内容弄糊涂了