stackoverflow上有类似的问题:

简单总结一下:

+build

newline_darwin.go

package main

// +build darwin
const Newline = "\n"

newline_windows.go

package main

// +build windows
const Newline = "\r\n"

newline_linux.go

package main

// +build linux

const Newline = "\n"

...

package main

func main() {
    fmt.Println(Newline) // 根据运行的平台输出对应的Newline
}


这种做法在go的标准库实现中随处可见: