首页 >后端开发 >Golang >如何修复 Golang 中的'无效操作:new_str str[i 1](字符串和字节类型不匹配)”?

如何修复 Golang 中的'无效操作:new_str str[i 1](字符串和字节类型不匹配)”?

Susan Sarandon
Susan Sarandon原创
2024-11-03 13:38:30665浏览

How to Fix

Golang 中类型不匹配:解决错误(类型不匹配 string 和 byte)

在 Golang 中,你可能会遇到“无效操作”的错误:new_str str[i 1](类型字符串和字节不匹配)”由于类型不匹配。当尝试将字节 (str[i 1]) 与字符串 (new_str) 连接时会出现此错误。 Go 要求显式类型转换。

在提供的示例代码中,此错误发生在 g 和 f 函数中:

  • 在 g 中,new_str 和 str[i 1] 的串联需要进行类型转换。正确的语法是 new_str = new_str string(str[i 1])。
  • 在 f 中,f(g(str)) 和 str[0] 的串联也需要类型转换。更正后的代码为 return f(g(str)) string(str[0]).

通过显式将字节转换为字符串,可以解决类型不匹配的问题,避免错误。这是修改后的代码片段,其中包含必要的转换:

<code class="go">package main

func g(str string) string {
    var i = 0
    var new_str = ""
    for i < len(str)-1 {
        new_str = new_str + string(str[i+1])
        i = i + 1
    }
    return new_str
}

func f(str string) string {
    if len(str) == 0 {
        return ""
    } else if len(str) == 1 {
        return str
    } else {
        return f(g(str)) + string(str[0])
    }
}

func main() {
    // ...
}</code>

以上是如何修复 Golang 中的'无效操作:new_str str[i 1](字符串和字节类型不匹配)”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn