ぜったいってなに

Software Engineerのブログです。

Scalaのyield

今度はScalayieldについて調べてみる。

下記ページがわかりやすかった。

Scala forメモ(Hishidama's Scala for Memo)

引用すると、

基本的なfor式では戻り値は無い(戻り型がUnitなので常に「()」が返る)が、yieldを付けることによって、繰り返した本体の演算結果を返すことが出来る。

Scala yield」でぐぐってもfor式の説明しか出てこなかったので
Scalaではこれがyieldの全てなんでしょう、多分。

実際にsbt consoleで試してみる。

scala> for (i <- 1 to 5) yield i * 5
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(5, 10, 15, 20, 25)

scala> for (s <- Array(1, 2, 3)) yield s * 3
res1: Array[Int] = Array(3, 6, 9)

Rubyよりもっと使いみちがわからんけど
ひとまず定義っぽいものはわかったのでよしとする。