Я написал этот код, чтобы увидеть, что происходит, когда я передаю две строки функции и возвращаю их снова:
fn main() {
let mut s3 = String::from("hello");
let mut s4 = String::from("wolrd");
(s3, s4) = take_n_giveback(s3, s4);
println!("{0} and {1}", s3, s4);
}
fn take_n_giveback(x: String, y: String) -> (String, String) {
(x, y)
}
Я получаю ошибку, которая не помогает:
error[E0070]: invalid left-hand side expression
--> src/main.rs:5:5
|
5 | (s3, s4) = take_n_giveback(s3, s4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ left-hand of expression not valid
Эта операция отлично работает при передаче одной строки и возврате назад.
fn main() {
let mut s3 = String::from("hello");
s3 = take_n_giveback(s3);
println!("{0} ", s3);
}
fn take_n_giveback(x: String) -> (String) {
x
}
Что здесь не так?Что означает ошибка и в каких ситуациях можно встретить код?