![]() |
1
pennai 2022-04-11 00:05:19 +08:00 ![]() 啥语言啊?开源的你直接点击源代码看看就行了
|
2
neoblackcap 2022-04-11 03:26:10 +08:00 ![]() 当然有区别,你自己手动输入换行符可是不会根据平台不一样换行的。
Windows 下,换行可是 CRLF(\r\n) |
![]() |
3
yaoyao1128 2022-04-11 06:55:31 +08:00 via iPhone ![]() println = print + newline
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/io/PrintStream.java Line 891 to 1060 |
![]() |
4
yaoyao1128 2022-04-11 07:04:37 +08:00 via iPhone ![]() |
![]() |
5
yin1999 2022-04-11 07:06:19 +08:00 via Android ![]() 可以看这里: https://cs.opensource.google/go/go/+/refs/tags/go1.18:src/fmt/print.go;drc=refs%2Ftags%2Fgo1.18;l=1164
这两种只有在传入字符串参数的时候会有不同 |
![]() |
6
yin1999 2022-04-11 07:08:11 +08:00 via Android ![]() @yin1999 没打完,print 连续传入两个字符串参数时,输出的字符串之间是无空格的,而 println 在输出两个连续的字符串之间是有空格的,其它没有区别
|
![]() |
7
yolee599 2022-04-11 09:06:28 +08:00 ![]() 有区别,println 会根据不同的平台决定添加 \r\n 还是 \n 。
|
![]() |
8
wudi77 2022-04-11 11:28:52 +08:00 ![]() System.lineSeparator()
|
![]() |
9
westoy 2022-04-11 11:57:26 +08:00 ![]() @yolee599
不,go 的 println 没做 CRLF , 直接\n 的 这是一个拖到 win10 之后就不处理的 feature https://github.com/golang/go/issues/28822 |
![]() |
10
timpaik 2022-04-11 12:49:45 +08:00 via Android ![]() 有些 println 还会主动刷新一下缓冲区?
|
![]() |
11
WuSiYu 2022-04-11 21:07:55 +08:00 via iPhone ![]() 有的语言( or 实现)是集成了换行和刷新缓冲,比如 C++的 std::endl ,如果输出是重定向到了文件的话,可能会导致执行慢不少,打 acm 应该都有体会
|