模式匹配-基本使用(3)

41 阅读1分钟

变量声明中的模式匹配

需求:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值。

未优化代码:

// 需求: 补充定义的三个变量:x,y,z,分别保持数组arr中的第1,2,3个元素的值。
//  var x = arr(0)
//  var y = arr(1)
//  var z = arr(2)

// println(("x=" + x + ",y =" + y + ",z=" + z))
// 优化: 使用match case表达式,完成上诉需求

优化后:

// 定义一个数组,其中有四个元素
val arr = Array(11,22,33,4,5,6)

// 需求: 补充定义的三个变量:x,y,z,分别保持数组arr中的第1,2,3个元素的值。
//  var x = arr(0)
//  var y = arr(1)
//  var z = arr(2)

// println(("x=" + x + ",y =" + y + ",z=" + z))
// 优化: 使用match case表达式,完成上诉需求

val Array(x,y,z,_*) = arr

println(x,y,z)