Святая Корова! — Продолжение (Holy std: borrow: Cow! — Redux)
• оригинал: llogic • перевод: Сергей Ефремов • обучение • поддержите на Patreon
Последний раз я использовал
очень полезный Cow
, чтобы разобраться с тем, нужно ли клонировать str
или
просто заимствовать её. Это было моё первое применение аннотаций времён жизни, и
это было явно похоже на достижение. : -)
На /r/rust, пользователь Artemciy спросил меня очень хороший вопрос
[…] Как это работает? Похоже на какую-то магию. Имею ввиду, как String становится str?
А также предложил свой вариант ответа:
P. S. Похоже, что в
String
есть реализацияIntoCow
’, которая преобразует её вstr
, но если посмотреть на эту реализацию — опять какая-то магия. Может String в тайне является str?
(выделено мной)
Хороший вопрос. На самом деле, наверное, вы бы хотели прочитать про обмен догадками, озарение, исследования, неправильные решения и драму в интернете. Но увы! У кого есть на это время? Поэтому попытаюсь донести всю суть от начала и до конца.