Vote code ne compile pas
cargo test
Compiling simple_linked_list v0.1.0 (/home/darnuria/coursRustP8/2021_l2_rust/linked-list/St-hilaire_elisha_joah/simple-linked-list)
error: expected identifier, found keyword `let`
--> src/lib.rs:26:13
|
26 | for let mut Some(node) = head {
| ^^^ expected identifier, found keyword
error: missing `in` in `for` loop
--> src/lib.rs:26:16
|
26 | for let mut Some(node) = head {
| ^ help: try adding `in` here
error: expected expression, found keyword `mut`
--> src/lib.rs:26:17
|
26 | for let mut Some(node) = head {
| ^^^ expected expression
error: expected one of `)`, `,`, `@`, or `|`, found `:`
--> src/lib.rs:58:22
|
58 | Some(Node: &Box<Node<T>>)=> Some(&n.data),
| ^ expected one of `)`, `,`, `@`, or `|`
error: could not compile `simple_linked_list` due to 4 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
Voici les corrections que j'ai apporté pour que ça compile:
git diff
diff --git a/simple-linked-list/src/lib.rs b/simple-linked-list/src/lib.rs
index ddfd1aa..539c1c4 100644
--- a/simple-linked-list/src/lib.rs
+++ b/simple-linked-list/src/lib.rs
@@ -10,7 +10,7 @@ struct Node<T> {
}
impl<T> SimpleLinkedList<T> {
pub fn new() -> Self {
- SimpleLinkedList{head: None};
+ SimpleLinkedList{head: None}
}
// You may be wondering why it's necessary to have is_empty() tu dois te dire pk c necessaire davoir is_empty()
@@ -23,16 +23,17 @@ impl<T> SimpleLinkedList<T> {
pub fn len(&self) -> usize {
// unimplemented!() // length g pas reussi mais c la taille je suppose
let mut size = 0;
- for let mut Some(node) = head {
- size = size + 1
- head = node.next;
+ let mut iter = &self.head;
+ while let Some(node) = iter {
+ size = size + 1;
+ iter = &node.next;
}
size
}
pub fn is_empty(&self) -> bool { // retourne juste 0 la tete de ligne
- return self.head.len() == 0;
+ return self.len() == 0;
}
@@ -55,7 +56,7 @@ impl<T> SimpleLinkedList<T> {
pub fn peek(&self) -> Option<&T> { //
match &self.head{ //tête de la liste de chaînée
- Some(Node: &Box<Node<T>>)=> Some(&n.data),
+ Some(n)=> Some(&n.data),
None => None,
}
}
Modification effectuée par Axel Viala