Рыбята, а есть аналог AutoClosable в нативе? Хочется таскать хендл, но не писать в каждом возможном месте ошибки close
Нет, но можно написать свои interface Closeable { fun close() } и fun <T: Closeable> Closeable.use(block: (T) -> Unit) = try { block(this) } finally { close() }
Спасибо, на крайняк копирну. В идеале бы хотелось иметь деструктор как в плюсах, расте и т.д. (Да, я понимаю, что у меня нет гарантии времени разрушения объекта)
Спасибо, на крайняк копирну. В идеале бы хотелось иметь деструктор как в плюсах, расте и т.д. (Да, я понимаю, что у меня нет гарантии времени разрушения объекта)
Деструктор - это по сути и есть скоуп. Рукми-то их никто не вызывает
Это да, скорее надо получше продумать использование ресурсов, раз хочется раи в менеджед языке :)
Скоупы позволяют делать довольно удобный безопасный менеджмент ресурсов, ничего при этом не ломая. В каком-нибудь расте все тоже делается скоупами, с той лишь разницой, что есть правила передачи ресурсов между скоупами.
Они есть, поскольку они есть в JVM, но они депрекейтнуты везде, где можно
Ну в Any их нет вроде, я не помню, этот метод надо оверрайдом помечать, или он и так работает. Возможно, для этого придётся от обжекта явно наследоваться. Впрочем, неважно.
Ну в Any их нет вроде, я не помню, этот метод надо оверрайдом помечать, или он и так работает. Возможно, для этого придётся от обжекта явно наследоваться. Впрочем, неважно.
Ну да, оно и в джаве не используется. И уж точно не для менеджмента памяти.