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