2

私が知っているように、次の表現

     for{i <- 0 to 10
         j <- 0 to 10} {...}

に等しい

  for(i <- 0 to 10) {
     for(j <- 0 to 10) {
        .....
     }
  }

しかし、次の式を最初のケースに変換する方法は?

  for(i <- 0 to 10) {
     **execute()**
     for(j <- 0 to 10) {
        .....
     }
  }
4

1 に答える 1

5

実行を実行し、結果を変数に格納する行を追加するだけです。例えば。:

for{i <- 0 to 10;
    k = doSomethingWith(i);
    j <- 0 to 10} {... do something with any or all of i,j,k ...}

実行が副作用のみの場合 (つまり、戻り値の型が Unit の場合)、または戻り値を気にしない場合は、アンダースコアに代入してください。例えば:

for{i <- 0 to 10;
    _ = println(s"i = $i");
    j <- 0 to 10} {... do something with i,j ...}
于 2013-09-10T14:05:34.133 に答える