目前,为了表示围棋程序中的换行符,我使用\n.例如:

package main

import "fmt"


func main() {
    fmt.Printf("%d is %s \n", 'U', string(85))
}

...将返回85 is U,后跟换行符.

然而,这似乎并不完全是跨平台的.看看其他语言,PHP用全局常量(PHP_EOL)表示这一点.在Go/Golang中,\n是以跨平台的特定方式表示换行符的正确方式吗?

推荐答案

我对此很好奇,所以决定看看fmt.Println到底做了什么.http://golang.org/src/pkg/fmt/print.go

如果你滚动到最下面,你会看到一个if addnewline,其中\n总是被使用.我很难说这是否是最"跨平台"的方式,而且Go在早期最初是与LinuxBundle 在一起的,但这就是STD库的特点.

我最初建议只使用fmt.Fprintln,这可能仍然有效,因为如果当前的功能不合适,可能会出现错误,然后只需使用最新的GO工具链编译代码即可.

Go相关问答推荐

如何使用GRPC UnaryClientInterceptor中的`maily`参数?

CGO如何转换为文件*类型

Golang Viper:如果第一个字段不存在,如何从另一个字段获取值

如何执行asn 1 marshal/unmarshal和omit字段?

理解Golang中的IOTA和常量

无法使用Segentio;S Kafka-Go连接到融合的Kafka

Go 中的 protobuf FieldMask 解组

在本地 go 应用程序上获取秘密的正确策略

如何将整数哈希细分为范围

Gorm 预加载给出了模糊的列错误

枚举的 Golang 验证器自定义验证规则

Go:从 ssl 证书中获取 'subject/unstructeredName' 的值

Go:从 ssl 证书中获取 'subject/unstructeredName' 的值

如果 transaction.Commit 对带有 postgres 连接的 SQL 失败,您是否需要调用 transaction.RollBack

不能在 *gorm.db 而不是 gorm.db 上使用 WithContext(ctx) 方法

Golang并发写入多个文件

Golang 工作池实现意外工作

如何从 tinygo webassembly 目标返回对象

HCL 解码:具有多个标签的块

更改单个像素的 colored颜色 - Golang 图像