我可以理解scala中的switch (someInt)
{
case 1:
// Validate if the form is filled correctly.
// The event returns true if that is the case.
bool? isValid = ValidateStuff?.Invoke();
if (isValid)
// If passed validation go to next step in form
GoToNextStep?.Invoke();
break;
// There are more cases, but you get the point
(...)
}
方法,它主要是将函数应用于值。在许多情况下,它被用作构造函数的一种形式。
我们假设apply
是地图。一个例子是list
,它从列表中获取给定的元素。
我还发现了更新方法的例子
def apply(id : Int) = list(id)
。
我可以理解它的作用,即它更新/添加列表中的键值对。我无法理解的是,该方法包含两个def update(id:Int,name:String) = list = list + (id -> name)
符号,一个在方法定义之后,另一个在列表之后定义了方法实际执行的内容=
。
两个list + (id -> name)
标志需要什么?彼此如何不同?我知道在=
符号之后方法体开始了,但这很令人困惑。
答案 0 :(得分:4)
您可以将其视为:
def update(id: Int, name: String): Unit = {
// perform update on 'list'
list = list + (id -> name)
// return empty (Unit) value
}
答案 1 :(得分:1)
第一个=
是分隔方法签名
def update(id: Int,name: String)
从其定义
list = list + (id -> name)
定义中的=
是赋值操作,其中=
右侧的表达式被计算并分配给左侧的对象。