Васильев Андрей Михайлович, 2024
Версии презентации
Kotlin предоставляет следующие функции для вывода информации на стандартный поток:
print()
— вывести данные на стандартный потокprintln()
— вывести данные на стандартный поток и добавить символ перевода
строкиПри работе на платформе JVM мы также можем обратиться к классам из стандартной
библиотеки Java, объект System.out
также доступен для вывода информации
Данные на стандартном потоке вывода предназначены для обозначения содержательных результатов работы приложения пользователю
Kotlin не предоставляет дополнительных средств взаимодействия с потоком ошибок
за исключением стандартного объекта Java, System.err
С его помощью можно выводить нужную информацию на данный поток:
System.err.println("Произошла ошибка с данными")
Стандартный поток ошибок обычно выводится на тот же интерфейс, что и обычный поток ошибок. При работе с эмулятором терминала зачастую невозможно отличить откуда пришла информация
IDEA делает различие потоков удобным: красным отображаются сообщения на потоке ошибок
Данные на потоке ошибок несут либо отладочную информацию, либо призывают пользователя изменить способ взаимодействия с приложением
Kotlin предоставляет следующие функции для считывания данных:
readln(): String
—
считывание строки текста со стандартного потока вводаreadlnOrNull(): String?
— также считывание строки со стандартного потока вводаОтличие заключается в возвращаемом значении. В случае ошибки первая функция
выбросит исключение RuntimeException, а вторая вернёт значение null
В случае, если необходимо обработать входной поток каким-либо другим способом,
то всегда можно обратиться к объекту System.in
и классу java.util.Scanner
При запуске приложения через систему сборки Gradle по умолчанию приложению предоставляются только потоки вывода, поток ввода не предоставляется
Для разрешения доступа к потоку ввода необходимо добавить следующий блок в
конфигурационный файл build.gradle.kts
tasks.withType<JavaExec> {
standardInput = System.`in`
}
Для всех задач указываем возможность использования стандартного потока ввода, в
том числе и для задачи run
Приложение также сообщает внешнему миру о результатах своей работы через установку кода возврата
Для установки кода возврата в Kotlin следует использовать функцию
exitProcess(status: Int)
В случае возникновения ошибки приложение должно установить ошибочный код возврата
Kotlin не предоставляет дополнительных средств считывания переменных окружения,
на платформе JVM доступен класс System
с методом getEnv
:
val allVariables: Map<String, String> = System.getEnv()
val homeVariable: String? = System.getEnv("HOME")
IDEA и Gradle предоставляют возможности по настройке переменных окружения перед запуском процесса
При запуске приложению могут быть переданы аргументы — некоторый набор строк, которое приложение может использовать при своей работе
При работе из командного интерфейса с помощью аргументов:
Т.е. зачастую аргументы целиком настраивают то действие, которое приложение должно выполнить
Для получения аргументов в приложении у функции main()
необходимо указать
аргумент с типом Array<String>
:
fun main(args: Array<String>) { ... }
Для работы с переданным массивом можно воспользоваться:
.size
для получения количества переданных аргументов[]
для получения значения аргумента на указанной позицииВ зависимости от требований приложение должно выполнить обработку аргументов
При запуске приложения с помощью задачи run
для передачи аргументов
приложению нужно воспользоваться аргументом --args
системы сборки
Предположим, что мы хотим передать нашему приложению два аргумента: first
и
10
тогда необходимо запустить задачу Gradle следующим образом:
gradle run --agrs="first 10"
Приложению будет передан массив из двух строк: first
и 10
В IDEA можно настроить несколько вариантов запуска команды run с разным набором аргументов и переключаться между ними для решения задач