TGViewer
Android Good Reads Android Good Reads @droidgr · 4.02K subscribers
Post #2150 2.92K
Разбираемся дает ли val обьекту свойство Immutable

Имутабельность нам нужна для:
👉 Многопоточки
👉 Предстказуемого поведения обьекта и отстутсвия сайд эффектов
👉 Корректного описания состояния обьекта

val в байт коде выглядит вот так:

private final Ljava/lang/String; text
@Lorg/jetbrains/annotations/NotNull;() // invisible

Что гарантирует нам постоянство ссылки, но не обьекта

Тоже валидный код, где мы переопределяем val как var

interface State<out T> {
val value: T
}

interface MutableState<T> : State<T> {
override var value: T
operator fun component1(): T
operator fun component2(): (T) -> Unit
}

val state: State<String> = remember { mutableStateOf("text") }
(state as MutableState<String>).value = "changed"


Документация нигде не определяет val как immutable, только как переменную доступную только для чтения

Задачка со звездочкой. Как создать полностью неизменяемый обьект?
  • 👏 7
  • ❤ 1
  • 🔥 1
More from @droidgr
  1. Sep 30, 2026🏗 Строим мультиагентные системы для разработки на Podlodka AI Crew Инженерные задачи редк…
  2. Aug 6, 2026Если вам всё ещё интересна мобильная разработка, рекомендую подписаться на канал Kotlin Ad…
  3. Aug 4, 2026Post #2504
  4. Jul 26, 2026Как я играю в экосистему продуктов Наиболее близка мне сейчас тема ухода за животными. Я м…
  5. Jul 26, 2026Привет! Как вы могли заметить, я более не помогаю вести данный канал. Если вам понравилось…
  6. Jun 10, 2026Немного про продуктивность без AI. Старый добрый помодоро таймер, но ужесточенный трекинго…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →