代码中用单引号和双引号有什么讲究吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kaiki
V2EX    问与答

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

  •  
  •   kaiki 2020-11-21 11:37:35 +08:00 4938 次点击
    这是一个创建于 1793 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我个人习惯用单引号,看到很多人代码都用的双引号。
    有的人代码随机用单引号和双引号,看着就很不舒服。
    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     Solana     908 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 18:59 PVG 02:59 LAX 11:59 JFK 14:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86