ddi*_*hev 2 scala intellij-idea
这个非常简单的工作表内容演示了这个问题:
object Test {
println("This does not print!")
add(5, 6)
}
println("This however prints!")
add(5, 6)
def add(a: Int, b: Int): Int = a + b
Run Code Online (Sandbox Code Playgroud)
上述工作表内容的结果如下:
defined module Test
This however prints!
res0: Unit = ()
res1: Int = 11
add: add[](val a: Int,val b: Int) => Int
Run Code Online (Sandbox Code Playgroud)
基于JetBrains官方网站Scala Worksheets示例和我发现的所有其他可靠资源(如Martin Odresky自己在Scala课程中的函数编程中的示例),我希望object Test执行的内容.我的软件是:
如果所有代码都在该对象内部,则scala工作表将执行对象test {....}的内容。如果对象之外有一些代码,它将仅定义该Test对象(而不运行它)。
object Test {
println("This does not print!")
def add(a: Int, b: Int): Int = {print("Sum:" + a + b); a + b}
add(2, 2)
}
// defined the above Test object
Test // executes the Test object
Run Code Online (Sandbox Code Playgroud)
我想这就是你想要的:
object Test {
println("This does not print!")
add(5, 6)
println("This however prints!")
add(5, 6)
def add(a: Int, b: Int): Int = a + b
}
Run Code Online (Sandbox Code Playgroud)
工作表的工作原理是,如果您定义一个对象而没有在object范围外定义任何内容,它将执行它Test extends App.这是intellij页面显示的内容
如果在object范围之外有任何语句,则将其视为任何其他语句object,编译器将像其他任何语句一样初始化它.这就是您所经历的.
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |