J'ai le code de ce formulaire :
class String
def is_jpg?
start_with? "\xFF\xD8\xFF".b
end
end
String#b renvoie une copie d'une chaîne de caractères mais codée en ASCII-8BIT. Ma question
L'interpréteur ruby est-il assez intelligent pour mettre en cache le résultat de b() dans l'exemple ci-dessus de sorte que les appels à cette méthode pour différentes instances de String n'aient pas à créer une nouvelle copie de " \xFF\xD8\xFF "à chaque fois ? Ou dois-je faire quelque chose comme :
class String
JPG_SIGNATURE = "\xFF\xD8\xFF".b
def is_jpg?
start_with? JPG_SIGNATURE
end
end
La réponse dépend-elle de la version de ruby et/ou de l'interpréteur ? J'utilise MRI 2.2.x, bientôt 2.3.x.