Scala comprehension式

1023 ワード

for comprehension
for comprehensionは、新しいセットを作成するためのfor式です.
Scalaは、シーケンス理解(sequence comprehensions)を表す軽量レベルの記号を提供する.形式for(enumerators)yield eを有することを理解し、ここでenumeratorsはセミコロン間隔の列挙器リストを指す.列挙器は、新しい変数を導入するジェネレータ、またはフィルタを表します.計算が列挙器によって生成された各バインドのボディeを理解し、これらの値を返すシーケンスを理解する.
case class User(name: String, age: Int)

val userBase = List(User("Travis", 28),
  User("Kelly", 33),
  User("Jennifer", 44),
  User("Dennis", 23))

val twentySomethings = for (user =20 && user.age < 30))
  yield user.name 

note:yieldのforループに伴ってListが作成されます.note:user note:if(user.age>=20&&user.age<20)は、20 s以外のユーザをフィルタリングするガードです.
def foo(n: Int, v: Int) =
   for (i 

note:2つの要素とvの2つの要素の値が0からn-1の間にある2つの要素グループを生成します.
理解はリストに限定されるものではなく、withFilter、map、flatMapオペレーションをサポートする各データ型をシーケンス理解に用いることができる.
理解中のyieldは無視できますが、この場合、理解はUnitに戻ります.
無視する
def foo(n:Int, v:Int) =
    for (i 

翻訳元:Scala Tour