TGViewer
Dolgo.polo Dev | Денис Долгополов Dolgo.polo Dev | Денис Долгополов @dolgo_polo_dev · 2.18K subscribers
Post #113 2.54K
Подписать переменную понятно
Data class vs Typealias vs Value class

Наприме, есть 2 переменных типа String — в одной храним полное ФИО, а в другой инициалы

и эти два параметра нужно перекидывать во множество функций


варианты решения:


• выбираем понятные длинные названия для переменных и везде используем их

val fullName: String
val shortName: String


минусы: нельзя сделать проверку типа, ведь обе переменные String, значит легко их перепутать


• создаем data-класс и упаковываем два поля туда

data class Names(fullName: String, shortName: String)


минусы: если играть в оптимизацию по памяти, то проиграешь + возможно не везде эти два поля нужно передавать вместе


• создаем typealias

typealias FullName = String
typealias ShortName = String


минус:
• typealias — не новый класс, поэтому у него не может быть своих функций, полей, конструкторов и т.д.
• typealias не даст сделать проверку типа, ведь FullName == String


• создаем value class

value class FullName(value: String)
value class ShortName(value: String)


плюсы:
• компилятор сам решит, где стоит оптимизировать и заинлайнить переменную, а где стоит оставить класс-обертку
• можно добавить функции и поля каждому value class
• можно делать проверку типа

минусы:
• нужно внимательно следить за .toString() — результат зависит от того, подставит компилятор value-класс или сразу его значение
  • 🔥 24
  • 🦄 9
  • ❤ 4
  • 🎃 1
More from @dolgo_polo_dev
  1. Jun 22, 2026Медиалента — то, что пользователь реально ощущает физически: скроллы, зумы, тапы. Любые ми…
  2. Jun 20, 2026👮‍♀️ Как VPN видит трафик всех приложений? технически VPN на андроид — это сервис внутри…
  3. Jun 13, 2026Дуров опять не старается 🍌🍌🍌 Пару месяцев назад команду телеграма ругали за то, что они…
  4. May 24, 2026🧬Может ли VPN ускорить интернет? Интуиция подсказывает — точно нет Добавляется лишний сер…
  5. May 22, 2026кто же знал, что основным выгодополучателем max 📲 окажется habr.com любая статья набирает…
  6. May 6, 2026вы снова не туда воюете сначала все пушили Compose типо верстать в 2 раза быстрее, можно с…
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 →