{
String { vec: self.vec.clone() }
}
fn to_owned(&self) -> String {
unsafe { String::from_utf8_unchecked(self.as_bytes().to_owned()) }
}
То есть, судя по коду .clone у стринги дешевле чем to_owned()? И лучше в основном использовать clone вместо to_owned?
одинаково
Ну так доп вызовы идут. Или под капотом у Vec.clone() та же петрушка?
Интересно, не знал об этом. Судя по коду, .clone() сделает полную копию, скопировав лишнюю капасити, а .to_owned() обрежет
хотя нет, не уверен, не откуда там обрезке взяться
это было бы так, если бы vec.clone() делал бы полную копию. Но https://doc.rust-lang.org/src/alloc/slice.rs.html#139
Обсуждают сегодня