【问题标题】:Get character at index of string获取字符串索引处的字符
【发布时间】:2017-06-15 15:43:55
【问题描述】:
func lengthOfLongestSubstring(s string) {
    match := make(map[string]int)
    var current string

    current = s[0]

    if match[current] == 1 {
        ///
    }

}

为什么我会收到错误 cannot use s[0] (type byte) as type string in assignment?据我所知,很明显sstring 类型,为什么访问一个字符会变成byte 类型?

【问题讨论】:

标签: go


【解决方案1】:
func lengthOfLongestSubstring(s string) {
    strArr:=[]rune(s) 
    fmt.Println(string(strArr[0]))

}

【讨论】:

    【解决方案2】:

    让我们看看其中一位 Go 设计师是如何看待strings in go

    在 Go 中,字符串实际上是只读的字节片。如果您完全不确定字节切片是什么或它是如何工作的,请阅读上一篇博文;我们在这里假设你有。

    重要的是要预先声明一个字符串包含任意字节。不需要保存 Unicode 文本、UTF-8 文本或任何其他预定义格式。就字符串的内容而言,它完全等价于一个字节。

    因此,显然在您的情况下,s[0] 是一种字节类型,如果您确实需要分配,则需要显式大小写。

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 2012-06-29
      • 2021-07-19
      • 1970-01-01
      • 2019-07-22
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      相关资源
      最近更新 更多