List.tabulate()()
第一个参数接收一个或多个值,代表一维或多维列表
第二个参数相当于一个或多个for循环,()内的参数就是这些for循环最中间对每个for循环的值的计算公式
举个例子:(这里是多维列表的例子)
List.tabulate(2,3)() // 代表生成一个二维的列表,两行三列
// 假设第二个参数是b
List.tabulate(2,3)(b)
// 这个b是什么呢
for (x1 <- 0 until 2){
for (x2 <- 0 until 3){
b; // x1与x2的计算公式
}
}
// 在第二个列表直接输入b的计算公式, 每个x用“_”代表
List.tabulate(2,3)(_*_) // 代表x1 * x2
// 上面得到的列表
List[List[Int]] = List(List(0, 0, 0), List(0, 1, 2))
// 写成详细的计算过程
List[List[Int]] = List(List(0 * 0, 0 * 1, 0 * 2),
List(1 * 0, 1 * 1, 1 * 2))
如果生成的是一维列表, 写法有所不同
List.tabulate(3)(x => x+1)
// 得到的列表
List[Int] = List(1, 2, 3)