valor usos tipo sirve que para obtiene numero historia completo como caracteristicas rust pi ambiguous

rust - usos - La constante de PI es ambigua



usos del numero pi (2)

Considere el siguiente código:

fn main() { let i = f32::consts::PI; }

Con el siguiente error:

$ rustc --version rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14) $ rustc - <anon>:2:13: 2:28 error: ambiguous associated type; specify the type using the syntax `<f32 as Trait>::consts` [E0223] <anon>:2 let i = f32::consts::PI; ^~~~~~~~~~~~~~~ error: aborting due to previous error

  1. ¿Por qué se queja de un "tipo asociado"? El único tipo que veo aquí es f32 , que no está asociado.
  2. ¿Por qué es esto ambigioso? Claramente especifiqué el f32 .
  3. ¿Qué es esta <f32 as Trait>::consts sintaxis <f32 as Trait>::consts ? Nunca lo he visto antes.
  4. Y, obviamente, ¿qué puedo hacer para corregir este error y configurar mi variable en PI?

¿Qué es esta <f32 as Trait>::consts sintaxis <f32 as Trait>::consts ? Nunca lo he visto antes.

Esto se denomina actualmente "sintaxis de llamada a la función universal" http://doc.rust-lang.org/stable/book/ufcs.html , pero estamos hablando de no volver a llamar así, ya que esto no es una función. .. Es más de una forma expandida, no ambigua.


Para resolver el problema, agregue use std::f32 o use std::f32::consts::PI , para que el compilador sepa que estamos hablando del módulo f32 aquí, no del tipo f32 .