V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kaiki
V2EX  ›  问与答

代码中用单引号和双引号有什么讲究吗?

  •  
  •   kaiki · 2020-11-21 11:37:35 +08:00 · 4485 次点击
    这是一个创建于 1470 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我个人习惯用单引号,看到很多人代码都用的双引号。
    有的人代码随机用单引号和双引号,看着就很不舒服。
    24 条回复    2020-11-21 19:17:52 +08:00
    wzzzx
        1
    wzzzx  
       2020-11-21 11:50:28 +08:00
    大概率是你弄错了
    itskingname
        2
    itskingname  
       2020-11-21 11:53:20 +08:00 via iPhone
    Python 官方建议写 Python 的时候全用单引号。除非遇到必须用双引号的情况。

    其他有些语言,例如 C 和 golang,单引号只能包住一个字符,对于多个字符构成的字符串需要双引号。
    kaiki
        3
    kaiki  
    OP
       2020-11-21 11:53:27 +08:00
    @wzzzx 我也看到大部分都是用的双引号,所以问下有什么讲究
    RiESA
        4
    RiESA  
       2020-11-21 11:56:24 +08:00
    还是看具体什么代码吧,比如 SQL 就区别单双引号
    kaiki
        5
    kaiki  
    OP
       2020-11-21 11:58:07 +08:00
    @RiESA SQL 的确,因为代码立马需要单引号,所以在写 SQL 字符串的时候用双引号
    raaaaaar
        6
    raaaaaar  
       2020-11-21 12:37:51 +08:00 via Android
    看语言啊
    Sylv
        7
    Sylv  
       2020-11-21 12:48:50 +08:00 via iPhone
    @itskingname 第一段来源请求。
    mimzy
        8
    mimzy  
       2020-11-21 12:50:22 +08:00
    @itskingname #2 https://www.python.org/dev/peps/pep-0008/ In Python, single-quoted strings and double-quoted strings are the same. This PEP does not make a recommendation for this.

    所以 black 默认给我格式化成啥算啥。https://black.readthedocs.io/en/stable/the_black_code_style.html#strings 其实符合语言规范、保持一致即可。
    statement
        9
    statement  
       2020-11-21 12:53:29 +08:00 via iPhone
    外层双引号内层单引号。一般这么用。 不分内外层随便用
    forgottencoast
        10
    forgottencoast  
       2020-11-21 13:03:34 +08:00
    这应该是各种语言的锅,天生就不应该在同一种场景下同时支持单引号和双引号。
    zgzb
        11
    zgzb  
       2020-11-21 13:23:16 +08:00 via Android
    个人 python 喜欢用单引号,因为外层一个双引号内层几个双引号有些情况下字符串识别不完整
    crab
        12
    crab  
       2020-11-21 13:25:34 +08:00
    统一就可以,别乱套。
    yolee599
        13
    yolee599  
       2020-11-21 13:26:17 +08:00 via Android
    c 语言,字符串用双引号,字符用单引号
    zachlhb
        14
    zachlhb  
       2020-11-21 13:33:43 +08:00 via Android
    语言的问题,其实标准来说单引号是 char,双引号是 varchar,但是很多语言这两个统称为 string,所以导致单双引号都能用了
    labulaka521
        15
    labulaka521  
       2020-11-21 14:35:20 +08:00 via iPhone
    go 单引号双引号有不同含义
    keepeye
        16
    keepeye  
       2020-11-21 14:38:56 +08:00
    如果指字符串语法,得看语言吧:
    语言不区分单双引号的就统一用单引号,如 js python 。
    而像 c go 这类,只能用双引号,没有争议
    keepeye
        17
    keepeye  
       2020-11-21 14:39:54 +08:00
    @keepeye go 支持反引号定义多行字符串,为避免被杠,还是说一下吧
    lovecy
        18
    lovecy  
       2020-11-21 14:44:45 +08:00
    PHP,单引号内部只转义\'和\\,双引号是类似 js 的模板字符串形式,可以插入变量,也会转义 \n \\ \"等字符串
    用法不同其实导致了很多 PHP 代码里单双引号随意用,不过其实也无所谓的,不影响
    junyee
        19
    junyee  
       2020-11-21 15:20:15 +08:00 via iPhone
    看语言。
    引号内部不让转义或展开变量,有的是单引号,有的是双信号。
    zxCoder
        20
    zxCoder  
       2020-11-21 15:43:54 +08:00
    习惯双引号字符串,单引号字符
    pinocc012
        21
    pinocc012  
       2020-11-21 15:53:56 +08:00
    在 perl 里面单引号不允许转义,双引号可以,所以该用啥看情况
    hxtheone
        22
    hxtheone  
       2020-11-21 16:08:56 +08:00
    个人习惯单双引号通用的场景优先用单引号, 其他情况看语法规定
    Chyo
        23
    Chyo  
       2020-11-21 16:36:23 +08:00
    单引号不用按 shift,所以默认用单引号
    dilu
        24
    dilu  
       2020-11-21 19:17:52 +08:00
    PHP 中,双引号可以解析转义字符,可以解析变量,常亮,甚至方法,单引号啥都不行只能表示字符串。

    但是单引号性能会好一点,因为啥都不用解析。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:13 · PVG 23:13 · LAX 07:13 · JFK 10:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.