История изменений
Исправление red75prim, (текущая версия) :
Инкапсуляция, как правило, значит инкапсуляция в каком-то инструменте абстракции, а абстракции у нас почему-то не бывают бесплатными — и тогда вопрос получается «стоят ли абстракции той цены, которую за себя требуют?».
Ээээ… Какие-то глобальные обобщения. Что именно не бесплатно? Аксессоры? Аксессоры не помеченные inline? В каком смысле не бесплатно? Время выполнения, размер машинного кода, время программиста пишущего библиотеку, время программиста использующего библиотеку?
А там все равно придется руками преобразования делать, потому что «ссылка на неизменяемую ссылку на изменяемое значение» и вот это всё.
«Придётся руками делать преобразования» - это поставить & или * или иногда ничего не ставить? Или что-то другое?
И при чём тут двойные ссылки? Да и нет в расте неизменяемых значений: если владеем переменной всегда можем объявить её mut.
В общем, ни фига не понял.
td/src/lazy.rs — 20 одно-двухстрочников, 6 функций на несколько строчек.
Речь шла о тривиальных аксессорах. Только для них, цитирую, «вообще не должно было существовать никаких вызовов».
Таких там 2 - get_unchecked и get_unchecked_mut.
Честно говоря всё это сильно напоминает скетч «The front fell off».
Исходная версия red75prim, :
Инкапсуляция, как правило, значит инкапсуляция в каком-то инструменте абстракции, а абстракции у нас почему-то не бывают бесплатными — и тогда вопрос получается «стоят ли абстракции той цены, которую за себя требуют?».
Ээээ… Какие-то глобальные обобщения. Что именно не бесплатно? Аксессоры? Аксессоры не помеченные inline? В каком смысле не бесплатно? Время выполнения, размер машинного кода, время программиста пишущего библиотеку, время программиста использующего библиотеку?
А там все равно придется руками преобразования делать, потому что «ссылка на неизменяемую ссылку на изменяемое значение» и вот это всё.
«Придётся руками делать преобразования» - это поставить & или * или иногда ничего не ставить? Или что-то другое?
И при чём тут двойные ссылки? Да и нет в расте неизменяемых значений: если владеем переменной всегда можем объявить её mut.
В общем, ни фига не понял.
td/src/lazy.rs — 20 одно-двухстрочников, 6 функций на несколько строчек.
Речь шла о тривиальных аксессорах. Только для них, цитирую, «вообще не должно было существовать никаких вызовов».
Таких там 2 - get_unchecked и get_unchecked_mut.