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的标准库实现中随处可见: