Йосиф качи първо решение на 22.10.2025 01:50 (преди 9 дена)
b) Обясни защо използваме &str, а не &String във fn print_str(s: &str)
Не ни трябва да можем да променяме стринга в тялото на функцията. Трябва ни само да го достъпваме
c) Обясни защо използваме &mut String, а не &mut str във fn append_exclamation(s: &mut String)
Защото &str са view-only. Ако променим стойността на такава променлива, ние всъщност променяме какво гледа. ползването на &must String ни позволява да пишем по текста, който е в паметта.
d) Какво би станало, ако в main направиш let r1 = &s; let r2 = &mut s; едновременно — ще компилира ли? Защо? Ще се компилира, защото референцията r1 освобождава слайса веднага, защото не се ползва никъде след това. Когато стигнем до r2 пак можем да ползваме s.
