为什么 scala 允许对字符串中的单引号进行转义?

mci*_*321 2 scala language-design

我刚刚读了一个scala教程,似乎在编写字符串时,scala将其视为\''但也将'其视为'

val a = "\'" // evaluates to '
val b = "'"  // evaluates to '
a == b //true
Run Code Online (Sandbox Code Playgroud)

这似乎不是该语言的理想属性* - 为什么会这样?

sep*_*p2k 5

通过允许\'in""\"in '',字符串和字符文字都只有一组合法的转义序列。这样,语言设计者就不必定义两个单独的集合,这会使语言规范和实现(稍微)更加复杂。