LINUX.ORG.RU

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

Исправление 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.