主要区别在于双引号String文字支持字符串插值和全套转义序列。
例如,它们可以通过插值包括任意Ruby表达式:
# 单引号字符串不支持插值 puts 'Now is #{Time.now}' # Now is #{Time.now} # 双引号字符串支持插值 puts "Now is #{Time.now}" # 现在是2016-07-21 12:43:04 +0200
双引号字符串还支持整个转义序列集,包括"\n","\t"...
puts 'Hello\nWorld' # 您好\ n世界 puts "Hello\nWorld" # 你好 # 世界
......而单引号字符串支持任何转义序列,霸菱必要的单引号字符串是有用的最小集:文字单引号和反斜杠,'\''并'\\'分别。