Освой Kotlin играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Исходный код хранится в файлах с расширением .kt (почему не .kot?).
В Java есть стандартный способ измерения кода, который мы можем использовать и в Kotlin.
val startTime = System.currentTimeMillis()
// ваш код, который нужно измерить
val totalTime = System.currentTimeMillis() - startTime
Но мы можем использовать другой читаемый код.
val elapsedTime = measureTimeMillis {
// ваш код, который нужно измерить
}
println("The code took to execute $elapsedTime ms")
Наверняка, во время написания кода вы не раз встречали, как студия предупреждает об устаревшей конструкции. Вы можете реализовать такую же возможность и в своём проекте. Особенно это пригодится при создании библиотеки, когда вы не можете просто изменить имя функции, чтобы не сломать обратную совместимость со старыми версиями.
Предположим, у вас была отличная функция feedCat(), в которой выводилось сообщение о необходимости покормить кота. Но в какой-то момент вы поняли, что кормить надо не только котиков, но и другую живность. Нужно сообщить программисту, что в новой версии библиотеки следует использовать новое имя функции - feed(). Вносим изменения в код библиотеки.
@Deprecated(
message = "Используйте функцию feed()",
replaceWith = ReplaceWith("feed(name)")
)
fun feedCat(name: String) {
feed(name)
}
fun feed(name: String) {
println("$name голодный. Покормите его")
}
Вызываем старую функцию и видим предупреждение. Меняем на новый вариант.
По умолчанию уровень устаревшего кода имеет значение DeprecationLevel.WARNING, который мы можем опустить. Также есть уровень ERROR (имя функции будет подчёркнуто красной волнистой чертой) и HIDDEN (имя функции будет выводиться красным цветом).
@Deprecated(
message = "Используйте функцию feed()",
level = DeprecationLevel.HIDDEN,
replaceWith = ReplaceWith("feed(name)")
)