LINUX.ORG.RU

типы указателей в расте

 , ,


1

2

Помогите мне разобраться с типами указателей в расте. Есть указател типа &int. По этому указателю находится число и у такого указателя есть только один владелец. Т.е. я не могу сделать две структуры

struct store{a : &int}
и записать в них один указатель. GC с ним не работает, так как время жизни известно на этапе компиляции.
Есть указатель Box<int> я могу создать такой указатель внутри блока и делать с ним все, что угодно, но в конце блока все копии этого указателя должны быть удалены и сам указатель освободится. GC эти указатели тоже не трогает, так как время освобождения известно.
Есть указатель ~int. Это обычный указатель на объект в куче. Время жизни неизвестно, за ним следит GC.
Я правильно понял, как работать с этими указателями? Есть тут еще какие-то типы или только эти 3? Что за указатель *mut int?

★★★★★

Пожалуйста, осиль гайд по расту: http://doc.rust-lang.org/guide.html
В расте сейчас вообще нет GC, его полностью выпилили. В твоих представлениях о языке же вообще сплошная путаница, так что лень разбирать.
Тебе может быть интересно, что все умные указатели включая Box<T> — являются частью стандартной библиотеки, а не примитивными типами, например:
http://doc.rust-lang.org/src/alloc/home/rustbuild/src/rust-buildbot/slave/nig...
http://doc.rust-lang.org/src/alloc/home/rustbuild/src/rust-buildbot/slave/nig...

quantum-troll ★★★★★
()
Ответ на: комментарий от Manhunt

Спасибо за ссылку на таблицу, мне стало немного понятнее.

Aswed ★★★★★
() автор топика
Ответ на: комментарий от Aswed

Видимо, старая версия. С документацией и статьями по Ржавчине надо аккуратней - надо смотреть на версию компилятора, для который это написано или смотреть на дату публикации.

ozkriff
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.