String
equalsGo strings may have the same rune
content, and this is important for us to detect. The strings may have been created in different ways.
In Go we use the equality operator to test the contents of strings. This is case-sensitive. Strings.EqualFold
can be used for case insensitivity.
String
equals exampleHere we create 2 strings that end up having the same values ("catcat"). They are not the same string
, but their contents are identical.
double
-equals sign operator to test the strings. This evaluates to true, so the "Strings are equal" message is printed.package main import ( "fmt" "strings" ) func main() { // Create 2 equal strings in different ways. test1 := "catcat" test2 := strings.Repeat("cat", 2) // Display the strings. fmt.Println("test1:", test1) fmt.Println("test2:", test2) // Test the strings for equality. if test1 == test2 { fmt.Println("Strings are equal") } if test1 != test2 { fmt.Println("Not reached") } }test1: catcat test2: catcat Strings are equal
EqualFold
Uppercase letters are not equal to lowercase letters. But with EqualFold
we fold cases. This makes "A" equal to "a." No string
copies or conversions are required.
EqualFold
instead of creating many strings by lowercasing them can optimize performance.package main import ( "fmt" "strings" ) func main() { value1 := "cat" value2 := "CAT" // This returns true because cases are ignored. if strings.EqualFold(value1, value2) { fmt.Println(true) } }true
With the equals-sign operator and strings.EqualFold
, we can compare strings. Case-insensitivity is not always needed. Using the equals operator is best when it is sufficient.