Currently, to represent a newline in go programs, I use \n. For example:
package main
import "fmt"
func main() {
fmt.Printf("%d is %s \n", 'U', string(85))
}
… will yield 85 is U followed by a newline.
However, this doesn’t seem all that cross-platform. Looking at other languages, PHP represents this with a global constant ( PHP_EOL ). Is \n the right way to represent newlines in a cross-platform specific manner in go / golang?
I got curious about this so decided to see what exactly is done by
fmt.Println. http://golang.org/src/pkg/fmt/print.goIf you scroll to the very bottom, you’ll see an
if addnewlinewhere\nis always used. I can’t hardly speak for if this is the most “cross-platform” way of doing it, and go was originally tied to linux in the early days, but that’s where it is for the std lib.I was originally going to suggest just using
fmt.Fprintlnand this might still be valid as if the current functionality isn’t appropriate, a bug could be filed and then the code would simply need to be compiled with the latest Go toolchain.