奇思妙想 · 2024年 9月 15日 0

如何看待双引号字符串内部可用单引号(不需转义),反之亦然?

20 次浏览

以Python为例,它本身属于解释型语言,单引号和双引号对于字符串没区别,一般而言,解释器发现有单引号,最终会以另一个单引号作为字符串结束,中间所有字符包括双引号都可以当成普通字符,对解释器词法分析而言,是可行的。

  • 事实上,C/ObjC/C++/Java/C#/Go/Rust/Swift/Kotlin 等语言一样支持,因单引号代表字符,只支持双引号字符串中直接写单引号。
    • 对于C语言,C89标准就已经支持。
  • JS和Python类似,单引号包双引号或者反过来都可行。
  • SQL语言默认单引号代表字符串,双引号并没有太多存在感,单引号字符串里面的单引号需要两个单引号转义。
  • VB的单引号是注释,不过依然支持双引号字符串中直接写单引号,不论是VB6.0还是VB.NET.