开发者学堂课程【Scala 核心编程-基础:循环返回值】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8919
循环返回值
目录
一、基本案例
val res = for(i<- 1 to 10) yield i //可以把 for 循环的内容放到另外一个集合里并返回
println(res)
二、对基本案例说明
1、将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字(来进行区分)
2、代码演示:
创建一个 Scala 的 Object 类名为 yieldFor,输入代码如下:
package com.atguigu.chapter04.myfor
object yieldFor {
def main(args : Array [String]): Unit = {
//说明 val res = for( i <- 1 to 10) yield i 的含义
//(1)对1 to 10进行遍历
//(2)yield i 将每次循环得到的 i 放入到集合 Vector 中,并返回给 res
//(3)i 这里是一个代码块,这就意味着可以对 i 进行处理
//(4)下面的这个方式,就体现出 scala 一个重要的语法特点,就是将一个集合中个各个数据进行处理,并返回给新的集合
val res = for( i <- 1 to 10) yield i
//可以返回一个 i;可以进行乘法计算
println(res)
}
}
运行结果如下:Vector(1,2,3,4,5,6,7,8,9,10)
// Vector 可以转换成其他集合
三、举例演示
1、例如:将 val res = for( i <- 1 to 10) yield i* 2(将此代码中 yield i 乘以2)
//相当于将每个元素进行遍历后,再将每个元素*2再返回,最后每个元素变成它原本的2倍;
运行结果即是 Vector(2,4,6,8,10,12,14,16,18,20)
2、添加 if 语句,代码如下:
val res = for(i <-_1 to 10) yield {
if (i % 2
==
0){
i //将原来的值进行返回
}
else{
“不是偶数” //不是偶数,则返回一个字符串
}
}
运行结果如下:
Vector(不是偶数,2,不是偶数,4,不是偶数,6,不是偶数,8,不是偶数,10)
Scanner 最常用法即整个集合交给一个函数,函数把集合每个元素遍历过后,最后把的集合返回;即 hadoop 中对一篇文章里每个单词的统计,就相当于做一件事情进行二次处理和过滤返回一个新的结果。