LINUX.ORG.RU

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

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

unsafe — биллионы раз уже объяснено, что в низкоуровневом языке обязаны быть указатели, если хочешь добиваться максимальной производительности кода, и работу с ними низзя в принципе гарантированно сделать безопасной. Либо ансейф, либо просираем по производительности тем языкам, где есть указатели. Какой этот костыль-то, если костыли добавляют в уже существующую систему, а в расте ансейф изначально есть (исключая совсем ранние версии, где еще существовал гц)?

Другой пример - делаем вывод типов, полиморфизм, перегрузку чтобы обеспечить универсальность интерфейсов, но пишем функции отдельно для мутабельных и иммутабельных типов

Понимаешь, на любой объект в расте в каждый момент времени можно иметь либо одну мутабельную ссылку, либо несколько иммутабельных. Поэтому можно одну иммутабельную ссылку отправить в split, а другими пользоваться. А с мутабельной ссылкой так не выйдет. Запулил в функцию и жди возврата. Какой обобщенный split ты тут предложишь? Это относится к концепции borrowing, заимствования. И нет, это не костыль, это превентивная мера безопасности, проявляющаяся при многопоточном программировании.

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

unsafe — биллионы раз уже объяснено, что в низкоуровневом языке обязаны быть указатели, если хочешь добиваться максимальной производительности кода, и работу с ними низзя в принципе гарантированно сделать безопасной. Либо ансейф, либо просираем по производительности тем языкам, где есть указатели. Какой этот костыль-то, если костыли добавляют в уже существующую систему, а в расте ансейф изначально есть (исключая совсем ранние версии, где еще существовал гц)?

Другой пример - делаем вывод типов, полиморфизм, перегрузку чтобы обеспечить универсальность интерфейсов, но пишем функции отдельно для мутабельных и иммутабельных типов

Понимаешь, на любой объект в расте в каждый момент времени можно иметь либо одну мутабельную ссылку, либо несколько иммутабельных. Поэтому можно одну иммутабельную ссылку отправить в split, а другими пользоваться. А с мутабельной ссылкой так не выйдет. Какой обобщенный split ты тут предложишь? Это относится к концепции borrowing, заимствования. И нет, это не костыль, это превентивная мера безопасности, проявляющаяся при многопоточном программировании.