LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Ну вполне логично.

Логично, что class-ы живут по своим законам, а struct-ы — по своим? И отношение к иммутабельности у них совсем разные? Классная логика, чё. Яблочная.

Наверное, люди так ахирели от десятилетий программирования на Objective-C, что Swift им теперь кажется венцом творения.

Но никто не мешает сделать интерфейс с одними геттерами и хранить указатель на него.

А что помешает вызвать внутри геттера какой-то мутирующий метод. Ну чисто по ошибке. И ловить потом баги в многопоточном коде, когда кто-то расшарил ссылку на интерфейс с геттерами между несколькими потоками?

Вот в D есть иммутабельность, там компилятор разработчика по рукам бьет за такие вещи, что хорошо.

Исходная версия eao197, :

Ну вполне логично.

Логично, что class-ы живут по своим законам, а struct-ы — по своим. И отношение к иммутабельности у них совсем разные. Классная логика, чё. Яблочная.

Наверное, люди так ахирели от десятилетий программирования на Objective-C, что Swift им теперь кажется венцом творения.

Но никто не мешает сделать интерфейс с одними геттерами и хранить указатель на него.

А что помешает вызвать внутри геттера какой-то мутирующий метод. Ну чисто по ошибке. И ловить потом баги в многопоточном коде, когда кто-то расшарил ссылку на интерфейс с геттерами между несколькими потоками?

Вот в D есть иммутабельность, там компилятор разработчика по рукам бьет за такие вещи, что хорошо.