LINUX.ORG.RU

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

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

*const type и *mut type нужны практически только в unsafe, в Питоне в таком случае вообще будет реализация на Си, что ни разу не проще.

«Два вида строк» - на самом деле удобная фича, помимо владеющей строки иметь еще и строковый срез. Единообразно с произвольными массивами и хорошо вписывается в концепцию владения/заимствования.

Что же касается прочих «умных указателей», то в Rust они имеют более прикладное значение, так как там понятие владения абстрактно и возведено в ранг идиомы программирования. Владеть можно вообще любыми ресурсами. Даже ссылки там называются не «ссылки», а «заимствования», так как это тоже более высокоуровневая идиома, чем просто ограниченный указатель на память (хотя с точки зрения реализации она этим является).

Поэтому если понять и принять концепцию владения и заимствования, вокруг которой построен Rust, именно как идиому программирования, то язык начинает играть совершенно другими, более высокоуровневыми красками, чем кажется изначально.

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

*const type и *mut type нужны практически только в unsafe, в Питоне в таком случае вообще будет реализация на Си, что ни разу не проще.

«Два вида строк» - на самом деле удобная фича, помимо владеющей строки иметь еще и строковый срез. Единообразно с произвольными массивами.

Что же касается прочих «умных указателей», то в Rust они имеют более прикладное значение, так как там понятие владения абстрактно и возведено в ранг идиомы программирования. Владеть можно вообще любыми ресурсами. Даже ссылки там называются не «ссылки», а «заимствования», так как это тоже более высокоуровневая идиома, чем просто ограниченный указатель на память (хотя с точки зрения реализации она этим является).

Поэтому если понять и принять концепцию владения и заимствования, вокруг которой построен Rust, именно как идиому программирования, то язык начинает играть совершенно другими, более высокоуровневыми красками, чем кажется изначально.