Golang程序 区分字符串==操作符和equals()方法

Golang程序 区分字符串==操作符和equals()方法

在Go编程语言中,字符串是一种内置的数据类型,表示字符序列。它们用双引号(”)定义,可以包含任何有效的Unicode字符。Go中的==运算符用于确定两个值,包括字符串,是否相等。==运算符通过比较两个操作数的值来确定它们是否相等,并返回一个布尔值。另一方面,字符串包的EqualFold()方法对两个字符串进行大小写不敏感的检查,并返回一个表示它们是否相等的布尔值。

方法1:使用bytes.Equal()方法

在这个例子中,我们将看到如何区分string==运算符和equals()方法。在这里,函数[]byte(mystr1)和[]byte(mystr2)将字符串翻译成字节片,然后再返回到字节。equal()函数比较这两个片断并产生一个真或假的布尔值。值得注意的是,由于该方法比较的是字符串的字节表示,与使用”==”运算符相比,结果可能会根据字符串的编码而有所不同。

语法

bytes.Equal()

在这个方法中,两个字节片使用equal方法比较是否相等。如果两片字节相等或不相等,将返回一个布尔值。bytes包包含该方法的定义。

算法

  • 第1步 -创建一个包main,并在程序中声明fmt(格式包)和bytes包,其中main产生可执行的例子,fmt帮助格式化输入和输出。

  • 第2步 – 创建一个main函数,在该函数中创建一个名为mystr1和mystr2的字符串。在控制台中打印它们。

  • 第 3步 – 使用bytes.Equal方法来检查转换为字节的片断是否相等。

  • 第 4步 – 这个方法将返回一个布尔值,即假或真。

  • 第 5步 – 输出将使用fmt.Println()函数打印在控制台,其中ln表示新行。

例子

在这个例子中,我们将使用golang的byte.Equal()函数。

package main
import (
   "bytes"
   "fmt"
)

func main() {
   mystr1 := "hello"  //created string1
   fmt.Println("The string1 created here is:", mystr1)
   mystr2 := "alexa" //created string2
   fmt.Println("The string2 created here is:", mystr2)
   fmt.Println("Are the strings equal?")

   // Using bytes.Equal() method
   fmt.Println(bytes.Equal([]byte(mystr1), []byte(mystr2))) // false
}

输出

The string1 created here is: hello
The string2 created here is: alexa
Are the strings equal?
false

方法2:使用EqualFold方法

在这个例子中,我们将看到如何区分字符串==运算符和等价法。在这里,使用字符串的第二次比较将导致使用==运算符的初次比较为真。真将由EqualFold()返回。让我们通过实例和算法来清楚地了解这个概念。

语法

strings.EqualFold()

使用EqualFold函数比较两个字符串是否相等时,不考虑字符的大小写。如果两个字符串相等(真),该函数会返回一个布尔值,否则会返回一个假值(假)。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(格式包)和strings包,其中main产生可执行实例,fmt帮助格式化输入和输出。

  • 第2步 – 创建一个函数main,并在该函数中声明两个字符串变量,mystr1和mystr2,并以一些值初始化它们。

  • 第 3步 – 使用==运算符来比较mystr1和mystr2。

  • 第4步 – 如果mystr1和mystr2相等,在控制台中打印 “str1和str2相等”。如果它们不相等,则打印 “str1和str2不相等”。

  • 第5步 – 使用EqualFold()函数对str1和str2进行不敏感的比较。

  • 第6步 – 如果str1和str2相等,向控制台打印 “str1和str2相等”。如果它们不相等,则打印 “str1和str2不相等”。

  • 第7步 – 使用fmt.Println()函数执行打印语句,其中ln表示新行。

例子

在下面的例子中,我们将使用EqualFold方法

package main
import (
   "fmt"
   "strings"
)

func main() {
   mystr1 := "create"
   fmt.Println("The string1 created here is:", mystr1)
   mystr2 := "craete"
   fmt.Println("The string2 created here is:", mystr2)

   // Using == operator
   fmt.Println("Are the strings equal using == operator?")
   if mystr1 == mystr2 {
      fmt.Println("str1 and str2 are equal")
   } else {
      fmt.Println("str1 and str2 are not equal")
   }

   // Using strings.EqualFold() method
   fmt.Println("Are the strings equal using EqualFold method?")
   if strings.EqualFold(mystr1, mystr2) {
      fmt.Println("str1 and str2 are equal")
   } else {
      fmt.Println("str1 and str2 are not equal")
   }
}

输出

The string1 created here is: create
The string2 created here is: craete
Are the strings equal using == operator?
str1 and str2 are not equal
Are the strings equal using EqualFold method?
str1 and str2 are not equal

结论

我们用两个例子执行了区分==运算符和等价方法的程序。在第一个例子中,我们使用bytes.Equal()方法,在第二个例子中,我们使用EqualFold方法来执行该程序。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程