move_semantics3 solution

This commit is contained in:
mo8it 2024-06-21 17:04:51 +02:00
parent 68142aff7f
commit fd558065c7
2 changed files with 24 additions and 7 deletions

View file

@ -1,6 +1,4 @@
// Make me compile without adding new lines -- just changing existing lines! (no // TODO: Fix the compiler error in the function without adding any new line.
// lines with multiple semicolons necessary!)
fn fill_vec(vec: Vec<i32>) -> Vec<i32> { fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
vec.push(88); vec.push(88);
@ -18,9 +16,7 @@ mod tests {
#[test] #[test]
fn move_semantics3() { fn move_semantics3() {
let vec0 = vec![22, 44, 66]; let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0); let vec1 = fill_vec(vec0);
assert_eq!(vec1, [22, 44, 66, 88]);
assert_eq!(vec1, vec![22, 44, 66, 88]);
} }
} }

View file

@ -1 +1,22 @@
// Solutions will be available before the stable release. Thank you for testing the beta version 🥰 fn fill_vec(mut vec: Vec<i32>) -> Vec<i32> {
// ^^^ added
vec.push(88);
vec
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn move_semantics3() {
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
assert_eq!(vec1, [22, 44, 66, 88]);
}
}