@@ -89,7 +89,7 @@ Future オブジェクトを返すメソッドだということだ。
8989
9090上の ` import ExecutionContext.Implicits.global `
9191という一文はデフォルトのグローバルな実行コンテキスト (execution context) をインポートする。
92- 実行コンテキストは渡されたタスクを実行し、スレッドプールのようなもとだと考えていい 。
92+ 実行コンテキストは渡されたタスクを実行し、スレッドプールのようなものだと考えていい 。
9393これらは、非同期計算がいつどのように実行されるかを取り扱うため、` future ` メソッドに欠かせないものだ。
9494独自の実行コンテキストを定義して ` future `
9595とともに使うことができるが、今のところは上記のようにデフォルトの実行コンテキストをインポートできるということが分かれば十分だ。
@@ -644,7 +644,7 @@ Promise は潜在的な値である `Try[T]` (失敗した結果の `Failure[Thr
644644` success ` 同様に、既に完了した Promise に対して ` failure ` や ` complete ` を呼び出すと
645645` IllegalStateException ` が投げられる。
646646
647- これまでに説明した Promise の演算とモナディックで副作用を持たたい演算を用いて合成した Future
647+ これまでに説明した Promise の演算とモナディックで副作用を持たない演算を用いて合成した Future
648648を使って書いたプログラムの便利な特性としてそれらが決定的 (deterministic) であることが挙げられる。
649649ここで決定的とは、プログラムで例外が投げられなければ、並列プログラムの実行スケジュールのいかんに関わらずプログラムの結果
650650(Future から観測される値) は常に同じものとなるという意味だ。
@@ -678,7 +678,7 @@ Promise を失敗させた `Throwable` が `Error`、`InterruptedException`、
678678Promise、Future の ` onComplete ` メソッド、そして ` future `
679679構文を使うことで前述の関数型合成に用いられるコンビネータの全てを実装することができる。
680680例えば、2つの Future ` f ` と ` g ` を受け取って、(最初に成功した) ` f ` か ` g `
681- のどちらかを返す ` first ` という新たしいコンビネータを実装したいとする 。
681+ のどちらかを返す ` first ` という新しいコンビネータを実装したいとする 。
682682以下のように書くことができる:
683683
684684 def first[T](f: Future[T], g: Future[T]): Future[T] = {
@@ -732,7 +732,7 @@ for library writers
732732` Duration ` は以下の方法で作成することができる:
733733
7347341 . ` Int ` もしくは ` Long ` 型からの暗黙の変換する。例: ` val d = 100 millis ` 。
735- 2 . ` Long ` の長さと ` java.util.concurrent.TimeUnit ` と渡す 。例: ` val d = Duration(100, MILLISECONDS) ` 。
735+ 2 . ` Long ` の長さと ` java.util.concurrent.TimeUnit ` を渡す 。例: ` val d = Duration(100, MILLISECONDS) ` 。
7367363 . 時間の長さを表す文字列をパースする。例: ` val d = Duration("1.2 µs") ` 。
737737
738738` Duration ` は ` unapply ` メソッドも提供するため、パータンマッチング構文の中から使うこともできる。以下に具体例をみる:
0 commit comments