1

基本的に私は次のことをしたい:

2つの方法があるとしましょう:

def printA(i: Int){
   print("Value A: " + i)
}

def printB(j: Int){
   print("Value B: " + j)
}

たとえば、私はこの両方の方法を使用して、計算の結果をいくつか出力します。毎回新しい行を印刷したり (println() を使用する場合)、新しい値を古い値に連結したり (print() を使用する場合) せずに、両方の値を更新できるようにしたいと考えています。

「:」の後の出力は、両方の行で個別に更新する必要があります。

Python では、プレースホルダーを使用します。

def printA(i):
    print '\rValue A: %d' % (i),
    sys.stdout.flush()

コンマは、Python が "\n" を挿入するのを防ぎます。Scala の場合、キャリッジ リターン ("\r") を使用してもまったく同じように機能するはずです。

問題は、独立して印刷するように更新したいのですが、キャリッジリターンが出力全体を破壊するため、最後の行だけが印刷されることです。

これをscalaで行う解決策はありますか?

ご協力いただきありがとうございます!

よろしく

4

1 に答える 1

0

あなたが何をしようとしているのか、私には少しわかりません。更新するのは行ですか、それとも書式設定ですか。この例は、次の両方を行うと信じています。

for (a <- 1 to 10) {
  Thread.sleep(1000)
  print("\rValue A: %d".format(a))
}
于 2011-04-07T07:34:13.203 に答える