Ada perbedaan antara ''
tanda kutip tunggal dan ganda ""
di Ruby dalam hal apa yang akan dievaluasi menjadi string.
Awalnya, saya ingin mengklarifikasi bahwa dalam bentuk literal string apa pun di antara tanda kutip tunggal atau ganda akan dievaluasi sebagai objek string, yang merupakan turunan dari kelas Ruby String.
Oleh karena itu, 'stackoverflow'
dan "stackoverflow"
keduanya akan mengevaluasi instance kelas String tanpa perbedaan sama sekali .
Perbedaan
Perbedaan mendasar antara dua bentuk string secara literal (tanda kutip tunggal atau ganda) adalah bahwa tanda kutip ganda memungkinkan untuk urutan-urutan pelarian sementara tanda kutip tunggal tidak!
String literal yang dibuat oleh tanda kutip tunggal tidak mendukung interpolasi string dan tidak luput dari urutan.
Contoh yang rapi adalah:
"\n" # will be interpreted as a new line
sedangkan
'\n' # will display the actual escape sequence to the user
Interpolasi dengan tanda kutip tunggal tidak bekerja sama sekali:
'#{Time.now}'
=> "\#{Time.now}" # which is not what you want..
Praktek terbaik
Seperti yang disarankan oleh sebagian besar Ruby Linters untuk menggunakan literal tanda kutip tunggal untuk string Anda dan pilih yang ganda dalam hal urutan interpolasi / pelolosan.