Информация об изменениях

Сообщение Re[3]: Lifetime в Rust от 25.12.2021 9:48

Изменено 25.12.2021 9:49 T4r4sB

Re[3]: Lifetime в Rust
Здравствуйте, glap, Вы писали:

G>Т.е. мы облегчаем работу компилятора?


Т.е. мы делаем вообще возможной инкрементальную сборку.
А значит, облегчаем жизнь и себе.

G>Больше интересно с точки зрения дизайна языка.

Можно и типы не указывать, ведь компилятор же всё может вывести. Сделать каждую функцию шаблонной с утиной типизацией. Только на практике это хорошо только для write-only кода, потому что когда ты сталкиваешься с ошибкой "в каком месте так вышло, что для этой залупы вывелся такой тип, а не такой", ради которой тебе приходится перелопачивать весь проект, а не одну функцию (и всё это на фоне гораздо более долгой сборки), то начинаешь понимать, что лучше как раз максимально много отметок оставлять в явном виде. По этой причине и auto в С++ — зло.
Re[3]: Lifetime в Rust
Здравствуйте, glap, Вы писали:

G>Т.е. мы облегчаем работу компилятора?


Т.е. мы делаем вообще возможной инкрементальную сборку.
А значит, облегчаем жизнь и себе.

G>Больше интересно с точки зрения дизайна языка.

Можно и типы не указывать, ведь компилятор же всё может вывести. Сделать каждую функцию шаблонной с утиной типизацией. Только на практике это хорошо только для write-only кода, потому что когда ты сталкиваешься с ошибкой "в каком месте так вышло, что для этой залупы вывелся такой тип, а не такой", ради которой тебе приходится перелопачивать весь проект, а не одну функцию (и всё это на фоне гораздо более долгой сборки), то начинаешь понимать, что лучше как раз максимально много отметок оставлять в явном виде. По этой причине и auto в С++ — зло.

Так вот, с лайфтаймами то же самое. В более-менее сложной логике ты родишь, пытаясь понять, почему лайфтайм вывелся не тот, какой тебе казалось бы должен был вывестись.