40 votes

Quelle est la signification de 'a : 'a dans les paramètres génériques de durée de vie ?

J'ai un code étrange :

#![allow(unused)]

fn f<'a>() {}
fn g<'a: 'a>() {}

fn main() {
    // let pf = f::<'static> as fn(); // (7)
    let pg = g::<'static> as fn();    // (8)
    //print!("{}", pf == pg);
}

La 7ème ligne ne peut pas être compilée si elle n'est pas commentée (avec l'erreur ci-dessous), mais la 8ème ligne peut être compilée.

error: cannot specify lifetime arguments explicitly if late bound lifetime parameters are present
 --> src/main.rs:7:18
  |
7 |     let pf = f::<'static> as fn(); // (7)
  |                  ^^^^^^^
  |
note: the late bound lifetime parameter is introduced here
 --> src/main.rs:3:6
  |
3 | fn f<'a>() {}
  |      ^^

Quelle est la signification de 'a: 'a la ligne 4 ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X