ホームページ >バックエンド開発 >Golang >Golang で「無効な操作: new_str str[i 1] (文字列とバイトの型が一致しません)」を修正する方法は?

Golang で「無効な操作: new_str str[i 1] (文字列とバイトの型が一致しません)」を修正する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 13:38:30610ブラウズ

How to Fix

Golang での型の不一致: エラーの解決 (文字列とバイトの型の不一致)

Golang では、「無効な操作です」というエラーが発生する場合があります。 : new_str str[i 1] (mismatched Type string and byte)" 型の不一致が原因です。このエラーは、バイト (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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。