Java Scala嵌套表达式不接受参数
团队 scala新手,逐步学习。在学习表达式块中的嵌套作用域时,在以下代码行中编写Java Scala嵌套表达式不接受参数,java,scala,Java,Scala,团队 scala新手,逐步学习。在学习表达式块中的嵌套作用域时,在以下代码行中编写 object ExpressionTest extends App { val area = { val PI = 3.14 PI * 10 { val PI= 100 PI * 2 } } println(area) } 在运行时获取以下异常 Error:(9, 5) Int(10) does not take parameters I
object ExpressionTest extends App {
val area = {
val PI = 3.14
PI * 10
{
val PI= 100
PI * 2
}
}
println(area)
}
在运行时获取以下异常
Error:(9, 5) Int(10) does not take parameters
I am using Intellji
在Scala中,可以将函数参数指定为块。编译器认为您的内部块是前一行中
10
的一个参数
为了帮助编译器理解您的意思,您可以添加一个代码>在行尾:
val area = {
val PI = 3.14
PI * 10;
{
val PI = 100
PI * 2
}
}
在Scala中,可以将函数参数指定为块。编译器认为您的内部块是前一行中10
的一个参数
为了帮助编译器理解您的意思,您可以添加一个代码>在行尾:
val area = {
val PI = 3.14
PI * 10;
{
val PI = 100
PI * 2
}
}
@krylog:添加之后;它工作得和预期的一样好。你能提供一个简单的例子说明它的意思吗?“可以将函数参数指定为块。”-位与函数编程混淆。例如,您可以编写someList.foreach{x⇒ println(x)}
而不是someList.foreach(x)⇒ println(x))
。这就是解析器认为您在案例中所做的。这使您可以编写看起来像内置控件结构的方法,即使它们是库方法。还有一个关于括号和大括号的综合答案。PI*10
后面的空行比分号更惯用。@krylog:after adding;它工作得和预期的一样好。你能提供一个简单的例子说明它的意思吗?“可以将函数参数指定为块。”-位与函数编程混淆。例如,您可以编写someList.foreach{x⇒ println(x)}
而不是someList.foreach(x)⇒ println(x))
。这就是解析器认为您在案例中所做的。这使您可以编写看起来像内置控制结构的方法,即使它们是库方法。还有一个关于括号和大括号的综合答案。PI*10
后面的空行比分号更惯用。