1 есть функция f() и приватный тип T. Функция этот тип возвращает.
Почему в файле 2 нельзя сделать let x = f() ?
Выдеается ошибка "type T is private"
От чего это защищает?
Инкапсуляция
Это просто слово
Это смотря как изучить информацию. Инкапсуляция -- очень точный термин, который полностью отвечает на вопрос своим описанием.
Приватный тип для этого и создается приватным, чтобы его нельзя было использовать извне
А ты его не используешь напрямую в описанном случае. Только значение
Я ток сел учитье rust, но исходя из текущего опыта, я бы твою задачу решал так: Сделал бы этот метод/переменную/проперти публичной и добавил бы к ней readonly Но я пока не понял сам есть ли readonly в rust)
Неа, только &T отдавать геттером
Используешь его и его методы. В итоге у тебя информация о приватном типе наружу втекает
Толтко один момент. Она втекает из функции, находящейся в том же файле что и тип
Приватный тип не для того приватный чтобы его нельзя было создать за пределами модуля
Обсуждают сегодня