为了账号安全,请及时绑定邮箱和手机立即绑定

Golang - 'A' 和具有相同类型字符串的 A 之间的区别?

Golang - 'A' 和具有相同类型字符串的 A 之间的区别?

Go
翻翻过去那场雪 2022-10-24 09:36:54
我正在做一个检查字符串的任何字母是否在字母数组中的练习。到目前为止,这是我的代码:func main() {    one_point := []string {"A", "D", "F"}    var message string = "AB"    for _, value := range one_point{        for _, rune_message := range message {            if (value == strconv.QuoteRune(rune_message)) {                fmt.Printf("%s equal %s \n", value,  strconv.QuoteRune(rune_message))                fmt.Printf("%s in the array\n", strconv.QuoteRune(rune_message))                fmt.Println("------------------------------")            } else {                fmt.Printf("%s not equal %s\n", value,  strconv.QuoteRune(rune_message))                fmt.Printf("%s not in the array \n", strconv.QuoteRune(rune_message))                fmt.Println("------------------------------")            }        }    }}结果如下:A not equal 'A''A' not in the array ------------------------------A not equal 'B''B' not in the array------------------------------D not equal 'A''A' not in the array------------------------------D not equal 'B''B' not in the array------------------------------F not equal 'A''A' not in the array------------------------------F not equal 'B''B' not in the array------------------------------从视觉上看,一个字符串有'而另一个没有。我想问一下:那两个有什么区别?如何修复我的代码以使其正常工作?
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以从输出中看到原因。A not equal 'A'.

strconv.QuoteRune 将符文转换为带'引号的字符串。它将“A”与“'A'”进行比较,所以它不相等。如果您想在字符串中比较它们,那么您可以执行if value == string(rune_message).

提示:

  1. 如果条件不应该使用括号。

  2. 使用骆驼箱而不是蛇箱。


查看完整回答
反对 回复 2022-10-24
?
心有法竹

TA贡献1866条经验 获得超5个赞

您正在将包含字母的字符串与带引号的字符串进行比较。你可以简单地做:


  one_point := []rune {'A', 'D', 'F'}

  ...

  for _, rune_message := range message {

     for _,value:=range one_point {

         if rune_message==value {

           ...

         }

      }

   }


查看完整回答
反对 回复 2022-10-24
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号