Spec-Zone.ru › Scala 2.13 Library

Объект scala.Console

объект Console extends 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

Линейные надтипы
AnsiColor, AnyRef, Any

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

final def !=(arg0: Any): Boolean

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

returns

true if !(this == that), false otherwise.

Определяющие классы
AnyRef → Any

final def ##(): Int

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

returns

хэш-значение, согласующееся с ==

Определяющие классы
AnyRef → Any

final def ==(arg0: Any): Boolean

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

returns

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[java.lang]
Классы-определения
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @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: AnyRef): Boolean

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

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

возвращает

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

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

def err: PrintStream

def finalize(): Unit

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

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

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

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

def flush(): Unit

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

final def getClass(): Class[_ <: AnyRef]

Возвращает представление класса объекта во время выполнения.

возвращает

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

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

def hashCode(): Int

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

returns

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

Definition Classes
AnyRef → Any
Annotations
@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

def setInDirect(in: BufferedReader): Unit

Attributes
protected

def setOutDirect(out: PrintStream): Unit

Attributes
protected

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(classOf[java.lang.InterruptedException])

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

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException]) @native()

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

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

err

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

thunk

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

returns

результаты thunk

См. также

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

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

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

err

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

thunk

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

returns

результаты 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

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

returns

результаты thunk

См. также

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

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

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

thunk

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

returns

результаты 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

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

returns

результаты thunk

См. также

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

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

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

out

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

thunk

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

returns

результаты 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.13.0/scala/Console$.html

Spec-Zone.ru

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