Je pensais que faire puts #{a}
donnerait le même résultat que puts a
mais il s'est avéré que ce n'était pas le cas. Pensez-y :
irb(main):001:0> a = [1,2]
=> [1, 2]
irb(main):002:0> puts a
1
2
=> nil
irb(main):003:0> puts "#{a}"
12
=> nil
irb(main):004:0>
Dans l'exemple ci-dessus, cela n'a pas beaucoup d'importance, mais cela peut en avoir lorsque je veux imprimer plusieurs variables sur une ligne, comme (psudocode) :
puts "There are #{a.size} items in the whitelist: #{a}"
Pourquoi la sortie est-elle différente ici ? Font-ils réellement des choses différentes, ou ont-ils une sémantique différente ?