rubyDans un article précédent, je donnais une méthode pour convertir rapidement un nombre en binaire et inversement quand on n’avait pas python 3. Ça m’est pratique quand j’ai besoin de faire une conversion rapide : un terminal, on lance python, on tape l’expression et on a le résultat. En regardant les nouveautés de ruby 1.8.7, j’ai découvert que c’était encore plus trivial.

% irb
irb(main):001:0> 42.to_s(2)
=> "101010"
irb(main):002:0> "%b" % 42
=> "101010"
irb(main):003:0> "1001".to_i(2)
=> 9
irb(main):004:0> 0b1001
=> 9

Enfantin non ?

Trackback

2 commentaires

  1. Et tu trouves ça lisible ???????????????????????????????????????
    Moi je préfère la version python et largement

  2. En fait en python, bin et int sont des fonctions builtins, alors qu’en ruby, les équivalents sont des méthodes des classes String et Fixnum. Comme en ruby tout est objet, c’est cohérent avec le langage d’utiliser des méthodes pour convertir vers une autre base, et c’est toujours la même méthode pour n’importe quelle conversion

    irb(main):001:0> 42.to_s(2)
    => "101010"
    irb(main):002:0> 42.to_s(8)
    => "52"
    irb(main):003:0> 42.to_s(10)
    => "42"
    irb(main):004:0> 42.to_s(16)
    => "2a"
    irb(main):005:0> "101".to_i(2)
    => 5
    irb(main):006:0> "101".to_i(8)
    => 65
    irb(main):007:0> "101".to_i(10)
    => 101
    irb(main):008:0> "101".to_i(16)
    => 257
    

    Je trouve ça enfantin parce que finalement to_s et to_i sont les méthodes ruby à employer pour convertir un objet vers le type String ou le type Fixnum. Les utiliser pour faire de la conversion de base est donc logique.

Ajouter un commentaire