Cách thành ngữ (sạch) tốt nhất để chuyển đổi một chuỗi các chuỗi thành một chuỗi, trong khi vẫn giữ các dấu ngoặc đơn kèm theo cho từng phần tử.
Nói cách khác, từ này:Làm phẳng một chuỗi các chuỗi trong Ruby
a = ["file 1.txt", "file 2.txt", "file 3.txt"]
tôi cần phải có được điều này
"'file 1.txt' 'file 2.txt' 'file 3.txt'"
đơn và dấu ngoặc kép có thể được trao đổi ở đây. Cách tốt nhất tôi biết là sử dụng bản đồ và tiêm/giảm.
ví dụ: a.map{|dir| "'" + dir + "'"}.join(' ')
eg2: a.reduce("'"){|acc, dir| acc += dir+"' "}
Hiệu suất có thể được cải thiện bằng cách tránh tạo ra chuỗi tạm thời (+ nhà điều hành). Đó không phải là câu hỏi chính của tôi. Có cách nào ngắn gọn hơn để đạt được kết quả tương tự không?
Bạn cần phải thoát khỏi dấu ngoặc kép bên trong các thành viên mảng? –
Không, chỉ để giữ dấu ngoặc kép bắt đầu và kết thúc như được hiển thị ở trên cho mảng. Tôi nhận ra rằng các dấu ngoặc kép được hiển thị không nằm trong chính các chuỗi và đó là lý do tại sao chúng bị tước đi khi chỉ thực hiện một phép nối trên mảng. – Alkaline