官术网_书友最值得收藏!

The for expressions

We've seen the for loops, and how simple it is to use them in Scala. There's much more we can do with the for syntax. Here's an example:

object ForExpressions extends App {

val person1 = Person("Albert", 21, 'm')
val person2 = Person("Bob", 25, 'm')
val person3 = Person("Cyril", 19, 'f')

val persons = List(person1, person2, person3)

for {
person <- persons
age = person.age
name = person.name
if age > 20 && name.startsWith("A")
} {
println(s"Hey ${name} You've won a free Gift Hamper.")
}

case class Person(name: String, age: Int, gender: Char)
}

The following is the result:

Hey Albert You've won a free Gift Hamper. 

In the preceding example, we used a generator, definitions, and filters in the for expression. We used a for expression on a list of persons. We proposed a gift hamper for a person whose name starts with A and who is older than 20 years of age.

The first expression in for is a generator expression which generates a new person from the persons list and assigns to person. Second is age and name definitions. Then finally we apply filters using the if statement to put conditions for our winner:

The for expressions

What if we want a couple more prizes for our people. In that case we may want to get a sub list of winners. That's possible by introducing yield.

主站蜘蛛池模板: 都江堰市| 祁连县| 福贡县| 苏尼特右旗| 巴中市| 富宁县| 江达县| 常宁市| 文化| 那坡县| 辉南县| 台南市| 瑞金市| 精河县| 德安县| 湄潭县| 夏河县| 多伦县| 蒙阴县| 靖远县| 高淳县| 阳新县| 长沙市| 芒康县| 左贡县| 德钦县| 威远县| 顺昌县| 大田县| 衡阳县| 崇仁县| 奉化市| 太湖县| 五大连池市| 射洪县| 色达县| 云龙县| 榆中县| 全椒县| 岳普湖县| 甘德县|