Обновление на месте для print () - Функция - PullRequest
1 голос
/ 06 апреля 2011

В основном я хочу сделать следующее:

Допустим, у меня есть два метода:

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?

Спасибо за вашу помощь!

С уважением

1 Ответ

0 голосов
/ 07 апреля 2011

Я немного не уверен в том, что ты пытаешься сделать. Это строка, которая обновляет или это форматирование. Этот пример, который я считаю, делает оба:

for (a <- 1 to 10) {
  Thread.sleep(1000)
  print("\rValue A: %d".format(a))
}
...