Объект Console.Console
Реализует функциональность вывода значений Scala в терминал. Для чтения значений используйте StdIn. Также определяет константы для форматирования текста в терминалах с поддержкой ANSI.
Вывод в консоль
Используйте методы print для вывода текста.
scala> Console.printf( "Today the outside temperature is a balmy %.1f°C. %<.1f°C beats the previous record of %.1f°C.\n", -137.0, -135.05) Today the outside temperature is a balmy -137.0°C. -137.0°C beats the previous record of -135.1°C.
Коды ANSI
Используйте коды ANSI для изменения цвета вывода в консоль, либо в STDOUT, либо в STDERR.
import Console.{GREEN, RED, RESET, YELLOW_B, UNDERLINED}
object PrimeTest {
def isPrime(): Unit = {
val candidate = io.StdIn.readInt().ensuring(_ > 1)
val prime = (2 to candidate - 1).forall(candidate % _ != 0)
if (prime)
Console.println(s"${RESET}${GREEN}yes${RESET}")
else
Console.err.println(s"${RESET}${YELLOW_B}${RED}${UNDERLINED}NO!${RESET}")
}
def main(args: Array[String]): Unit = isPrime()
}
| $ scala PrimeTest |
| 1234567891 |
| да |
| $ scala PrimeTest |
| 56474 |
| НЕТ! |
Переопределение ввода-вывода
Используйте переопределение ввода-вывода, чтобы временно заменить потоки ввода и/или вывода. В этом примере метод, основанный на потоках, обернут в функцию.
import java.io.{ByteArrayOutputStream, StringReader}
object FunctionalPrimeTest {
def isPrime(candidate: Int): Boolean = {
val input = new StringReader(s"$candidate\n")
val outCapture = new ByteArrayOutputStream
val errCapture = new ByteArrayOutputStream
Console.withIn(input) {
Console.withOut(outCapture) {
Console.withErr(errCapture) {
PrimeTest.isPrime()
}
}
}
if (outCapture.toByteArray.nonEmpty) // "yes"
true
else if (errCapture.toByteArray.nonEmpty) // "NO!"
false
else throw new IllegalArgumentException(candidate.toString)
}
def main(args: Array[String]): Unit = {
val primes = (2 to 50) filter (isPrime)
println(s"First primes: $primes")
}
}
| $ scala FunctionalPrimeTest |
| Первые простые числа: Vector(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47) |
| Надтипы | |
|---|---|
| Тип самого себя |
Вывод в консоль
Эти методы обеспечивают вывод в консоль.
Исходник
Очищает поток вывода. Эта функция необходима, когда требуется визуализировать частичный вывод (т.е. вывод, не завершённый символом новой строки) в терминале.
Исходник
Выводит объект в out используя его метод toString.
| Параметры значения |
|
|---|
Исходник
Выводит аргументы в виде форматированной строки в стандартный поток вывода на основе шаблона строки (подобно printf в C).
Интерпретация форматирующих шаблонов описана в java.util.Formatter.
| Параметры значения |
|
|---|---|
| Исключения |
|
Исходник
Выводит символ новой строки в стандартный поток вывода.
Исходник
Выводит объект в стандартный поток вывода, а затем символ новой строки.
| Параметры значения |
|
|---|
Стандартные потоки ввода-вывода
Эти значения обеспечивают прямой доступ к стандартным каналам ввода-вывода
Исходник
def err: PrintStream
Стандартный поток ошибок, может быть переопределён withErr
Исходник
def in: BufferedReader
Стандартный поток ввода, может быть переопределён withIn
Исходник
def out: PrintStream
Стандартный поток вывода, может быть переопределён withOut
Переопределение ввода-вывода
Эти методы позволяют заменить альтернативные потоки на время выполнения блока кода. Обеспечивает безопасность потоков благодаря scala.util.DynamicVariable.
Исходник
def withErr[T](err: PrintStream)(thunk: => T): T
Устанавливает стандартный поток ошибок на время выполнения одного thunk.
| Параметры значения |
|
|---|---|
| Возвращает | результат |
| См. также |
|
| Пример |
withErr(Console.out) { err.println("This goes to default _out_") }
|
Исходник
def withErr[T](err: OutputStream)(thunk: => T): T
Устанавливает стандартный поток ошибок на время выполнения одного thunk.
| Параметры значения |
|
|---|---|
| Возвращает | результат |
| См. также |
|
Исходник
Устанавливает стандартный поток ввода на время выполнения одного thunk.
| Параметры значения |
|
|---|---|
| Возвращает | результат |
| См. также |
|
| Пример |
val someFile:Reader = openFile("file.txt")
withIn(someFile) {
// Reads a line from file.txt instead of default input
println(readLine)
}
|
Исходник
def withIn[T](in: InputStream)(thunk: => T): T
Устанавливает стандартный поток ввода на время выполнения одного thunk.
| Параметры значения |
|
|---|---|
| Возвращает | результат |
| См. также |
|
Исходник
def withOut[T](out: PrintStream)(thunk: => T): T
Устанавливает стандартный поток вывода на время выполнения одного thunk.
| Параметры значения |
|
|---|---|
| Возвращает | результат |
| См. также |
|
| Пример |
withOut(Console.err) { println("This goes to default _error_") }
|
Исходник
def withOut[T](out: OutputStream)(thunk: => T): T
Устанавливает стандартный поток вывода на время выполнения одного thunk.
| Параметры значения |
|
|---|---|
| Возвращает | результат |
| См. также |
|
цвет-пурпурный
Источник
final val MAGENTA: "\u001b[35m"
Цвет переднего плана для ANSI пурпурного
| Унаследовано от | AnsiColor |
|---|
Источник
final val MAGENTA_B: "\u001b[45m"
Цвет фона для ANSI пурпурного
| Унаследовано от | AnsiColor |
|---|
цвет-синий
Источник
final val BLUE: "\u001b[34m"
Цвет переднего плана для ANSI синего
| Унаследовано от | AnsiColor |
|---|
Источник
final val BLUE_B: "\u001b[44m"
Цвет фона для ANSI синего
| Унаследовано от | AnsiColor |
|---|
цвет-красный
Источник
final val RED: "\u001b[31m"
Цвет переднего плана для ANSI красного
| Унаследовано от | AnsiColor |
|---|
Источник
final val RED_B: "\u001b[41m"
Цвет фона для ANSI красного
| Унаследовано от | AnsiColor |
|---|
цвет-голубой
Источник
final val CYAN: "\u001b[36m"
Цвет переднего плана для ANSI голубого
| Унаследовано от | AnsiColor |
|---|
Источник
final val CYAN_B: "\u001b[46m"
Цвет фона для ANSI голубого
| Унаследовано от | AnsiColor |
|---|
стиль-управление
Источник
final val BLINK: "\u001b[5m"
ANSI мигание
| Унаследовано от | AnsiColor |
|---|
Источник
final val BOLD: "\u001b[1m"
ANSI полужирный
| Унаследовано от | AnsiColor |
|---|
Источник
final val INVISIBLE: "\u001b[8m"
ANSI невидимый
| Унаследовано от | AnsiColor |
|---|
Источник
final val RESET: "\u001b[0m"
Сброс стилей ANSI
| Унаследовано от | AnsiColor |
|---|
Источник
final val REVERSED: "\u001b[7m"
ANSI инвертированный
| Унаследовано от | AnsiColor |
|---|
Источник
final val UNDERLINED: "\u001b[4m"
ANSI подчеркивание
| Унаследовано от | AnsiColor |
|---|
цвет-жёлтый
Источник
final val YELLOW: "\u001b[33m"
Цвет переднего плана для ANSI жёлтого
| Унаследовано от | AnsiColor |
|---|
Источник
final val YELLOW_B: "\u001b[43m"
Цвет фона для ANSI жёлтого
| Унаследовано от | AnsiColor |
|---|
цвет-белый
Источник
final val WHITE: "\u001b[37m"
Цвет переднего плана для ANSI белого
| Унаследовано от | AnsiColor |
|---|
Источник
final val WHITE_B: "\u001b[47m"
Цвет фона для ANSI белого
| Унаследовано от | AnsiColor |
|---|
цвет-чёрный
Источник
final val BLACK: "\u001b[30m"
Цвет переднего плана для ANSI чёрного
| Унаследовано от | AnsiColor |
|---|
Источник
final val BLACK_B: "\u001b[40m"
Цвет фона для ANSI чёрного
| Унаследовано от | AnsiColor |
|---|
цвет-зелёный
Источник
final val GREEN: "\u001b[32m"
Цвет переднего плана для ANSI зелёного
| Унаследовано от | AnsiColor |
|---|
Источник
final val GREEN_B: "\u001b[42m"
Цвет фона для ANSI зелёного
| Унаследовано от | AnsiColor |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/Console$.html