• 发表于 9个月前
• 阅读 2
• 收藏 0
• 评论 0

## 遍历

``````scala> var intArray=Array(1,2,3)
intArray: Array[Int] = Array(1, 2, 3)

// to  length-1
scala> for(i<- 0 to intArray.length-1){println(intArray(i))}
1
2
3
// until  小于length
scala> for(i<- 0 until intArray.length){println(intArray(i))}
1
2
3
// 正确遍历数组的姿势
scala> for(i<- intArray){println(i)}
1
2
3
//倒叙遍历
scala> for(i<- (0 until intArray.length).reverse){println(intArray(i))}

3
2
1
``````

## 转换

Scala 中 for 循环是有返回值的。 for 循环中的 yield 会把当前的元素记下来，保存在集合中，循环结束后将返回该集合。

``````//  生成新的数组原数组不变
scala> var intArray=Array(1,2,3)
intArray: Array[Int] = Array(1, 2, 3)

scala> for(i<-intArray) yield i*2
res6: Array[Int] = Array(2, 4, 6)

scala> intArray
res7: Array[Int] = Array(1, 2, 3)

scala> var intArray2=for(i<-intArray) yield i*2
intArray2: Array[Int] = Array(2, 4, 6)
// 加入过滤条件
scala> var intArray2=for(i<-intArray if i>2) yield i*2
intArray2: Array[Int] = Array(6)
``````

## 常规用法

``````//求和
scala> intArray.sum
res8: Int = 6
//求最小值
scala> intArray.min
res9: Int = 1
//求最大值
scala> intArray.max
res10: Int = 3
// make String
scala> intArray.mkString(",")
res11: String = 1,2,3
scala> intArray.mkString("<",",",">")
res12: String = <1,2,3>
``````

×