V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
saleacy
V2EX  ›  Go 编程语言

麻烦问一下 println 和 print\n 底层有区别吗

  •  
  •   saleacy · 2022-04-11 00:03:27 +08:00 via Android · 3446 次点击
    这是一个创建于 963 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    2022-04-11 21:07:55 +08:00
    pennai
        1
    pennai  
       2022-04-11 00:05:19 +08:00   ❤️ 1
    啥语言啊?开源的你直接点击源代码看看就行了
    neoblackcap
        2
    neoblackcap  
       2022-04-11 03:26:10 +08:00   ❤️ 1
    当然有区别,你自己手动输入换行符可是不会根据平台不一样换行的。
    Windows 下,换行可是 CRLF(\r\n)
    yaoyao1128
        3
    yaoyao1128  
       2022-04-11 06:55:31 +08:00 via iPhone   ❤️ 1
    yin1999
        5
    yin1999  
       2022-04-11 07:06:19 +08:00 via Android   ❤️ 1
    可以看这里: https://cs.opensource.google/go/go/+/refs/tags/go1.18:src/fmt/print.go;drc=refs%2Ftags%2Fgo1.18;l=1164

    这两种只有在传入字符串参数的时候会有不同
    yin1999
        6
    yin1999  
       2022-04-11 07:08:11 +08:00 via Android   ❤️ 1
    @yin1999 没打完,print 连续传入两个字符串参数时,输出的字符串之间是无空格的,而 println 在输出两个连续的字符串之间是有空格的,其它没有区别
    yolee599
        7
    yolee599  
       2022-04-11 09:06:28 +08:00   ❤️ 2
    有区别,println 会根据不同的平台决定添加 \r\n 还是 \n 。
    wudi77
        8
    wudi77  
       2022-04-11 11:28:52 +08:00   ❤️ 1
    System.lineSeparator()
    westoy
        9
    westoy  
       2022-04-11 11:57:26 +08:00   ❤️ 3
    @yolee599

    不,go 的 println 没做 CRLF , 直接\n 的

    这是一个拖到 win10 之后就不处理的 feature https://github.com/golang/go/issues/28822
    timpaik
        10
    timpaik  
       2022-04-11 12:49:45 +08:00 via Android   ❤️ 1
    有些 println 还会主动刷新一下缓冲区?
    WuSiYu
        11
    WuSiYu  
       2022-04-11 21:07:55 +08:00 via iPhone   ❤️ 1
    有的语言( or 实现)是集成了换行和刷新缓冲,比如 C++的 std::endl ,如果输出是重定向到了文件的话,可能会导致执行慢不少,打 acm 应该都有体会
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1170 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:53 · PVG 06:53 · LAX 14:53 · JFK 17:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.