[Ruby] concaténation variable + string

a marqué ce sujet comme résolu.

Bonjour à tous, Je cherche le moyen de concaténer deux variable et un string, et j’avoue (le manque d’habitude de ce langage n’aidant pas) ne pas trouver la solution :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
dir_frame=UI.savepanel"Selectionner le dossier et le fichier", "" , "angle_"
    if (dir_frame)
      puts dir_frame  
    else
      puts "Operation annulee."
      exit
    end
...
degre=10
degre.times{|i|
   frame= ( dir_frame + i + ".png")
}

Le but est de me retrouver dans puts une chaîne ressemblant à ça :

1
c:\\repertoire\angle_0.png , c:\\repertoire\angle_1.png .....c:\\repertoire\angle_9.png

Sauf que visiblement la ligne 11 fait planter mon script (vu que si je la commente, le script poursuit son chemin.

Quelqu’un connait-il la bonne concaténation ?

Merci par avance !

Salut,

Le mieux reste l’interpolation.

1
frame = "#{dir_frame}#{i}.png"

PS : en Ruby, on privilégie une indentation de deux espaces.

+4 -0

Je commence le langage crystal, et comme ça ressemble beaucoup à la syntaxe ruby, je me dis que cette fonction ci-dessous devrait passer.

1
2
3
4
5
def st(*args)
  str_array = args.map {|e| e.to_s}.join("")
end

puts st("test", 1, ".jpg") # test1.jpg

Bien ou pas, je n’ai pas assez de recul pour ça…

EDIT: En regardant ci-dessus, pourquoi s’embêter ?

1
2
3
4
5
def st(*args)
  str_array = args.join("")
end

puts st("test", 1, ".jpg") # test1.jpg
+0 -1

C’est hors sujet fred1599,

Mais pour répondre, pour ceux que ça intéresse, nous pouvons effectivement faire la même chose en Crystal, qui lui aussi à un typage fort : puts "test#{1}.jpg"

puts "test" + 1.to_s + ".jpg"

puts ["test", 1, ".jpg"].join("")

Travaillera sans problème.

Le test peux se faire ici :

https://play.crystal-lang.org/#/cr

Le choix proposé par « Karnaj » est souvent le meilleur pour la plupart des cas.

PS : l’indentation est nettement plus discutable, chacun fait comme il a envie, temps qu’il mélange pas les deux, de même pour l’utilisation de la tabulation ou pas… Parce que sinon en vient à Go est l’histoire de l’accolade d’ouverture :-/.

+1 -0

PS : l’indentation est nettement plus discutable, chacun fait comme il a envie, temps qu’il mélange pas les deux, de même pour l’utilisation de la tabulation ou pas…

Même si Ruby n’a pas de REP (référence aux PEP de Python pour ceux qui n’auraient pas suivi ;) ), les guides de bonnes pratiques préconisent une indentation de deux espaces, et c’est aussi elle qu’on retrouve dans les projets. C’est une convention (tacite ?) donc autant l’utiliser surtout pour quand on arrivera dans un autre projet ou que quelqu’un nous rejoindra sur le notre.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte