Qual è il modo migliore idiomatico (più pulito) per convertire una serie di stringhe in una stringa, mantenendo le virgolette racchiuse per ciascun elemento.
In altre parole, da questo:Appiattisci una serie di stringhe in Ruby
a = ["file 1.txt", "file 2.txt", "file 3.txt"]
avrei bisogno di ottenere questo
"'file 1.txt' 'file 2.txt' 'file 3.txt'"
singole e doppie virgolette potrebbero essere scambiati qui. Il modo migliore che conosco è usare la mappa e iniettare/ridurre.
es: a.map{|dir| "'" + dir + "'"}.join(' ')
eg2: a.reduce("'"){|acc, dir| acc += dir+"' "}
Rappresentazione potrebbe essere migliorata evitando creazione stringa temp (+ operatore). Questa non è la mia domanda principale però. C'è un modo più pulito e conciso per ottenere lo stesso risultato?
Avete bisogno di fuggire tra virgolette i membri di matrice? –
No, solo per mantenere le virgolette di inizio e fine come mostrato sopra per l'array. Mi rendo conto che le virgolette mostrate non sono nelle stringhe stesse ed è per questo che vengono tolte quando si esegue solo un join sull'array. – Alkaline