Spec-Zone.ru › Scala 2.12 Library

Объект scala.Console

объект Console extends DeprecatedConsole with AnsiColor

Реализует функциональность для вывода значений 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)
Источник
Console.scala
С

1.0

Линейные супертипы

Члены-значения

final def !=(arg0: Any): Boolean

Проверка двух объектов на неравенство.

возвращает

true если !(this == that), иначе false.

Классы определений
AnyRef → Any

final def ##(): Int

Эквивалентно x.hashCode, за исключением упакованных числовых типов и null. Для числовых типов возвращает значение хэша, согласованное с равенством значений: если две сущности типа значения сравниваются как true, то ## вернёт одинаковое значение хэша для каждой из них. Для null возвращает хэш-код, где null.hashCode генерирует NullPointerException.

возвращает

значение хэша, согласованное с ==

Классы определений
AnyRef → Any

final def ==(arg0: Any): Boolean

Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

Классы определений
AnyRef → Any

final val BLACK: String("\u001B[30m")

Цвет переднего плана для ANSI чёрного

Классы определений
AnsiColor

final val BLACK_B: String("\u001B[40m")

Цвет фона для ANSI чёрного

Классы определений
AnsiColor

final val BLINK: String("\u001B[5m")

ANSI мигание

Классы определений
AnsiColor

final val BLUE: String("\u001B[34m")

Цвет переднего плана для ANSI синего

Классы определений
AnsiColor

final val BLUE_B: String("\u001B[44m")

Цвет фона для ANSI синего

Классы определений
AnsiColor

final val BOLD: String("\u001B[1m")

ANSI жирный

Классы определений
AnsiColor

final val CYAN: String("\u001B[36m")

Цвет переднего плана для ANSI сине-зелёного

Классы определений
AnsiColor

final val CYAN_B: String("\u001B[46m")

Цвет фона для ANSI сине-зелёного

Классы определений
AnsiColor

final val GREEN: String("\u001B[32m")

Цвет переднего плана для ANSI зелёного

Классы определений
AnsiColor

final val GREEN_B: String("\u001B[42m")

Цвет фона для ANSI зелёного

Классы определений
AnsiColor

final val INVISIBLE: String("\u001B[8m")

ANSI невидимый

Классы определений
AnsiColor

final val MAGENTA: String("\u001B[35m")

Цвет переднего плана для ANSI пурпурного

Классы определений
AnsiColor

final val MAGENTA_B: String("\u001B[45m")

Цвет фона для ANSI пурпурного

Классы определений
AnsiColor

final val RED: String("\u001B[31m")

Цвет переднего плана для ANSI красного

Классы определений
AnsiColor

final val RED_B: String("\u001B[41m")

Цвет фона для ANSI красного

Классы определений
AnsiColor

final val RESET: String("\u001B[0m")

Сброс стилей ANSI

Классы определений
AnsiColor

final val REVERSED: String("\u001B[7m")

ANSI инвертированный

Классы определений
AnsiColor

final val UNDERLINED: String("\u001B[4m")

ANSI подчеркнутый

Классы определений
AnsiColor

final val WHITE: String("\u001B[37m")

Цвет переднего плана для ANSI белого

Классы-определения
AnsiColor

final val WHITE_B: String("\u001B[47m")

Цвет фона для ANSI белого

Классы-определения
AnsiColor

final val YELLOW: String("\u001B[33m")

Цвет переднего плана для ANSI жёлтого

Классы-определения
AnsiColor

final val YELLOW_B: String("\u001B[43m")

Цвет фона для ANSI жёлтого

Классы-определения
AnsiColor

final def asInstanceOf[T0]: T0

Преобразует объект-получатель к типу T0.

Обратите внимание, что успех преобразования во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка требуемому типу.

возвращает

объект-получатель.

Классы-определения
Any
Исключения

ClassCastException, если объект-получатель не является экземпляром стирания типа T0.

def clone(): AnyRef

Создаёт копию объекта-получателя.

По умолчанию реализация метода clone зависит от платформы.

возвращает

копию объекта-получателя.

Атрибуты
protected[lang]
Классы-определения
AnyRef
Аннотации
@throws( ... ) @native()
Примечание

не указан SLS в качестве члена AnyRef

final def eq(arg0: AnyRef): Boolean

Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).

Метод eq реализует отношение эквивалентности на не-нулевых экземплярах AnyRef, и имеет три дополнительных свойства:

    Он согласован: для любых не-нулевых экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого не-нулевого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false. null.eq(null) возвращает true.

При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2), и они должны хешироваться до одного значения (o1.hashCode == o2.hashCode).

возвращает

true если аргумент является ссылкой на объект-получатель; false в противном случае.

Классы-определения
AnyRef

def equals(arg0: Any): Boolean

Метод равенства для ссылочных типов. Реализация по умолчанию делегирует eq.

См. также equals в scala.Any.

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

Классы-определения
AnyRef → Any

def err: PrintStream

def finalize(): Unit

Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.

Подробности о вызове метода finalize, а также взаимодействие finalize с нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[lang]
Классы-определения
AnyRef
Аннотации
@throws( classOf[java.lang.Throwable] )
Примечание

не указан SLS в качестве члена AnyRef

def flush(): Unit

Очищает выходной поток. Этот метод необходим, когда нужно отобразить частичный вывод (например, вывод, не завершённый символом новой строки) на терминале.

final def getClass(): Class[_]

Возвращает представление runtime-класса объекта.

возвращает

объект класса, соответствующий runtime-типу получателя.

Классы-определения
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Метод hashCode для ссылочных типов. См. hashCode в scala.Any.

возвращает

значение кода хеширования для этого объекта.

Классы-определения
AnyRef → Any
Аннотации
@native()

def in: BufferedReader

final def isInstanceOf[T0]: Boolean

Проверьте, является ли динамический тип объекта-приёмника T0.

Обратите внимание, что результат теста зависит от семантики стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за того, что аргумент типа стирается во время компиляции, невозможно проверить, являются ли элементы списка указанного типа.

returns

true, если объект-приёмник является экземпляром стираемого типа T0; false в противном случае.

Definition Classes
Any

final def ne(arg0: AnyRef): Boolean

Эквивалентно !(this eq that).

returns

true если аргумент не является ссылкой на объект-приёмник; false в противном случае.

Definition Classes
AnyRef

final def notify(): Unit

Разбудит единственную нить, ожидающую монитор объекта-приёмника.

Definition Classes
AnyRef
Annotations
@native()
Note

не указано SLS как член AnyRef

final def notifyAll(): Unit

Разбудит все нити, ожидающие монитор объекта-приёмника.

Definition Classes
AnyRef
Annotations
@native()
Note

не указано SLS как член AnyRef

def out: PrintStream

def print(obj: Any): Unit

Выводит объект в out, используя его метод toString.

obj

выводимый объект; может быть null.

def printf(text: String, args: Any*): Unit

Выводит аргументы в виде форматированной строки в стандартный вывод, основываясь на шаблоне строки (аналогично printf в C).

Интерпретация форматирующих шаблонов описана в java.util.Formatter.

text

шаблон форматирования аргументов.

args

аргументы, используемые для создания шаблона.

Exceptions thrown

java.lang.IllegalArgumentException если возникла проблема с форматом строки или аргументами

def println(x: Any): Unit

Выводит объект в стандартный вывод, после чего добавляет символ новой строки.

x

выводимый объект.

def println(): Unit

def setErrDirect(err: PrintStream): Unit

Attributes
protected
Definition Classes
Console → DeprecatedConsole

def setInDirect(in: BufferedReader): Unit

Attributes
protected
Definition Classes
Console → DeprecatedConsole

def setOutDirect(out: PrintStream): Unit

Только для внутреннего использования.

Attributes
protected
Definition Classes
Console → DeprecatedConsole

final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef

def toString(): String

Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.

returns

строковое представление объекта.

Definition Classes
AnyRef → Any

final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )

final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )

final def wait(arg0: Long): Unit

Описание классов
AnyRef
Аннотации
@throws( ... ) @native()

def withErr[T](err: OutputStream)(thunk: ⇒ T): T

Устанавливает стандартный поток ошибок на время выполнения одного задания.

err

новый поток ошибок.

thunk

код, который выполняется с новым потоком ошибок.

возвращает

результаты thunk

См. также

withErr[T](err:PrintStream)(thunk: =>T)

def withErr[T](err: PrintStream)(thunk: ⇒ T): T

Устанавливает стандартный поток ошибок на время выполнения одного задания.

err

новый поток ошибок.

thunk

код, который выполняется с новым потоком ошибок.

возвращает

результаты thunk

Пример:
    withErr(Console.out) { err.println("This goes to default _out_") }
См. также

withErr[T](err:OutputStream)(thunk: =>T)

def withIn[T](in: InputStream)(thunk: ⇒ T): T

Устанавливает стандартный входной поток на время выполнения одного задания.

in

новый входной поток.

thunk

код, который выполняется с новым входным потоком.

возвращает

результаты thunk

См. также

withIn[T](reader:Reader)(thunk: =>T)

def withIn[T](reader: Reader)(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)
    }
См. также

withIn[T](in:InputStream)(thunk: =>T)

def withOut[T](out: OutputStream)(thunk: ⇒ T): T

Устанавливает стандартный выходной поток на время выполнения одного задания.

out

новый выходной поток.

thunk

код, который выполняется с новым выходным потоком.

возвращает

результаты thunk

См. также

withOut[T](out:PrintStream)(thunk: => T)

def withOut[T](out: PrintStream)(thunk: ⇒ T): T

Устанавливает стандартный выходной поток на время выполнения одного задания.

out

новый выходной поток.

thunk

код, который выполняется с новым выходным потоком.

возвращает

результаты thunk

Пример:
    withOut(Console.err) { println("This goes to default _error_") }
См. также

withOut[T](out:OutputStream)(thunk: => T)

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/Console$.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API