В то время как я понимаю, что такое str
и std::string::String
, и как они соотносятся друг с другом, я считаю немного сложным составить строки из разных частей, не тратя слишком много времени и не подумав об этом. Так что, как обычно, я подозреваю, что пока не вижу правильного способа сделать это, что делает его интуитивным и легким.
let mut s = std::string::String::with_capacity(200);
let precTimeToJSON = | pt : prectime::PrecTime, isLast : bool | {
s.push_str(
"{ \"sec\": "
+ &(pt.sec.to_string())
+ " \"usec\": "
+ &(pt.usec.to_string())
+ if isLast {"}"} else {"},"})
};
Приведенный выше код удостоен компилятора сообщениями об ошибках, например:
src\main.rs: 25: 20: 25:33 ошибка: двоичная операция
+
не может применяться к типу&'static str
[E0369]
И даже после того, как полчаса играли и случайно добавляли &
, я не мог сделать это компилируемым. Итак, вот мои вопросы:
- Что я должен написать для достижения очевидного?
- Что такое "стандартный" способ сделать это в Rust?