Golang Equal String, EqualFold (If Strings Are the Same)Test strings for equality using the equals operator in an if-statement. Use the EqualFold func.
dot net perls
String equals. Golang strings may have the same rune content, and this is important for us to detect. The strings may have been created in different ways.
Operator. In Golang 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 example. Here we create 2 strings that end up having the same values ("catcat"). They are not the same string, but their contents are identical.
Equals We use the double-equals sign operator to test the strings. This evaluates to true, so the "Strings are equal" message is printed.
Golang program that tests for equal strings
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.
Tip Using EqualFold instead of creating many strings by lowercasing them can optimize performance.
Golang program that uses EqualFold
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) } }
A review. 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.
© 2007-2021 sam allen. see site info on the changelog