Les documents sont inutiles: http://web.mit.edu/Rust-lang_v0.9/doc/std/num/fn.abs.html
Évidemment, je peux voir la fonction à cet endroit, mais je n’ai pas la moindre idée de la façon de l’appeler.
Modifier:
Le problème est que cela ne fonctionne pas fonctionne :)
use std::num;
let x = num::abs(value);
"Nom non résolu: num :: abs"
Edit 2: courir la nuit d'hier (26/11/2014); ne sais pas quelle version. Je n'avais pas réalisé que ces documents étaient si désuets. oO
Les documents actuels semblent indiquer qu’une telle fonction n’existe pas?
De nos jours, abs
est une méthode sur la plupart des types de nombres .
let value = -42i32;
let x = value.abs();
C'est parce que vous ne fournissez probablement pas assez d'informations de type.
fn main() {
println!("Abs is \"{}\"",
std::num::abs(-42i));
}
remarquez le suffixe i
qui indique à Rust que -42
est un entier.
La règle du pouce est la suivante: vous devez spécifier votre type quelque part, et le suffixe est utile, par exemple, une autre façon dont cela fonctionne est
fn main() {
let x = -42i;
println!("Abs is \"{}\"",
std::num::abs(x));
}
ça marche aussi
fn main() {
let x: int = -42;
println!("Abs is \"{}\"",
std::num::abs(x));
}
si vous voulez un mutable, il vous suffit d’ajouter mut
juste après let
fn main() {
let mut x: int = -42;
x += x;
println!("Abs is \"{}\"",
std::num::abs(x));
}
et vous obtenez x
et vous pouvez changer la valeur de x
.
Jamais réussi à faire rustc
reconnaître abs
en tant que fonction. Je suis finalement allé avec:
let abs = if val < 0 {
abs * -1
} else {
abs
};
Je suppose que j'aurais pu commencer par là, mais j'essaie toujours d'apprendre les bibliothèques. : |