I am learning go and when playing with string I noticed that if a string is in single quotes then golang is giving me an error but double quotes are working fine.
func main() { var a string a = 'hello' //will give error a = "hello" //will not give error }
This is the error I get on my system:
illegal rune literal
While when I try to do the same on playground I am getting this error:
prog.go:9: missing ' prog.go:9: syntax error: unexpected name, expecting semicolon or newline or } prog.go:9: newline in string prog.go:9: empty character literal or unescaped ' in character literal prog.go:9: missing '
I am not able to understand the exact reason behind this as in for example Python, Perl one can declare a string with both single and double quote.
Use escapeEcmaScript method from Apache Commons Lang package: Escapes any values it finds into their EcmaScript String form. Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.). So a tab becomes the characters '\\' and 't' .
use double quotes for strings and single quotes for chars. I prefer to use the same quoting across the board and so stick with double quotes for JS.
In your go source files, if you try to use single quotes for a multi-character string literal, you'll get a compiler error similar to illegal rune literal . What you can do instead for removing quotes from the start and end of a string, is use the strings. Trim function to take care of it.
In Go, '⌘'
represents a single character (called a Rune), whereas "⌘"
represents a string containing the character ⌘
.
This is true in many programming languages where the difference between strings and characters is notable, such as C++.
Check out the "Code points, characters, and runes" section in the Go Blog on Strings
Another option, if you are wanting to embed double quotes:
package main func main() { s := `west "north" east` println(s) }
https://golang.org/ref/spec#raw_string_lit
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With