Comment puis-je convertir "755" à 0755 dans Ruby? Je veux transmettre des autorisations à une méthode à l'aide d'une chaîne, puis convertissez-la pour une utilisation CHMOD. P>
3 Réponses :
Cela devrait le faire:
"755".to_i(8) # => 493 "755".to_i(8) == 0755 # => true
Fantastique, a fait ce test en IRB et a eu "vrai" -> 0755 == "755" .to_i (8)
Je viens d'ajouter que à ma réponse, alors les gens comprennent ce que c'est pour.
def append_zero_to_string(string)
0.to_s + string
end
Il attend pas une chaîne. Tandis que "755" est une chaîne, 0755 n'est pas une chaîne.
Un peu en retard à la fête, mais vous pouvez vérifier les erreurs de saisie en passant la chaîne et la base pour instancier un entier ainsi,
Integer("755",8)=493
Integer("855",8)
ArgumentError: invalid value for Integer(): "855"
begin
Integer("855",8)
rescue ArgumentError, TypeError
"Bad input"
end
Ce n'est pas clair ce que vous voulez réellement. Voulez-vous ajouter zéro à une chaîne? Ou quoi?
Je veux convertir une chaîne en une octale, comme le titre dit le titre.
@Pavel: "755" == 0755 retourne false ...
Non ce n'est pas. C'est une corde. Il veut le convertir en un entier à la base 8. La question est parfaitement claire.