fprintln() 在 Windows 下编写 Linux 风格的行尾

  • 本文关键字:风格 Linux Windows fprintln go
  • 更新时间 :
  • 英文 :


我在Windows上运行Go并将行写入带有fmt.Fprintln(w, line)的文件,但行尾是Linux风格的行尾,而不是Windows。是否有我需要设置的环境变量或其他东西?

不,fmt 总是使用 unix 行尾。如果你想要不同的东西,你需要自己打印。

正如Stephen Weinberg已经说过的,fmt中的print函数总是使用n作为行。分隔符。

您可以在此处的代码中看到这一点。

作为解决方法,您可以定义自己的打印功能或使用Printf而不是Println

fmt.Printf("Foorn")

如果要为程序运行环境中使用的换行符定义全局字符串,您可以为每个操作系统创建一个.go文件,并使用构建标记选择正确的操作系统。

或者,编写一个解析runtime.GOOS(播放)的函数:

func Newline() string {
    switch runtime.GOOS {
    case "windows":
        return "rn"
    // ...more...
    case "linux":
        fallthrough
    default:
        return "n"
    }
}
fmt.Printf("This is a line%s", Newline())

最新更新