我一直在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。
答案 0 :(得分:0)
没关系。我只是对文件的内容感到困惑