Scala地图和对操纵

时间:2016-04-01 00:25:17

标签: scala dictionary

我是Scala的初学者。
我读过有关地图操作的代码,但无法理解它是如何工作的。

val terms = Map (1 -> 1.0, 2-> 2.0)
val (exp, coeff) = (2, 4.0)
exp -> (coeff + terms(exp))  //> res: (Int, Double) = (2,6.0)
coeff + terms(exp)  //> res: Double = 6.0

我认为第三行可能应用了地图功能,
但右边显然是一个数字 为什么输出是一对?

感谢。

3 个答案:

答案 0 :(得分:4)

val (exp, coeff) = (2, 4.0)

这是一个解构函数,它将值24.0分配给名称expcoeffexp现在为2coeff现为4.0

terms(exp)

这是一个导致2.0

的地图查找
exp -> (coeff + terms(exp))

此箭头->是构建配对的简短术语。它现在具有值26.0,因为coeff + terms(exp)6.0

答案 1 :(得分:2)

public static boolean sortArrayList(final int[] data) { for(int i = 1; i < data.length; i++) { if(data[i-1] > data[i]) { return false; } } return true; } terms(exp)定义的键处访问“地图对象”terms的值。

与此相反,“地图方法”的用法如下所示:

exp

val list = List(1, 2, 3, 4) val double = (i: Int) => i * 2 val list2 = list.map(double) printf(list2.toString) 为列表的每个成员执行函数文字list.map(double),并返回一个新的List对象。

打印输出为:

double

答案 2 :(得分:1)

terms(exp)是地图查找,解析为2.0

(coeff + terms(exp))因此4.0 + 2.0

exp -> (coeff + terms(exp))中,箭头->构建了一对左右操作数。