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
?据我所知,s
属于string
类型,为什么访问某个字符会将其转换为byte
类型?
答案 0 :(得分:2)
让我们看看golang官方人员如何看待go(https://blog.golang.org/strings)中的字符串:
在Go中,字符串实际上是一个只读的字节片。如果您完全不确定片段是什么或者它是如何工作的,请阅读上一篇博客文章;我们在这里假设你有。
预先声明字符串包含任意字节非常重要。不需要保存Unicode文本,UTF-8文本或任何其他预定义格式。就字符串的内容而言,它完全等同于一个字节片段。
所以,显然在你的情况下,s [0]是一个字节类型,如果你真的需要赋值,你需要明确的情况。
答案 1 :(得分:2)
func lengthOfLongestSubstring(s string) {
strArr:=[]rune(s)
fmt.Println(string(strArr[0]))
}