ホームページ > バックエンド開発 > Golang > Golang で「型が文字列とバイトが一致しません」エラーを解決するにはどうすればよいですか?

Golang で「型が文字列とバイトが一致しません」エラーを解決するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-27 20:39:30
オリジナル
311 人が閲覧しました

How to Resolve the

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

エラー メッセージ (型の文字列とバイトの不一致) は、次のことを示しています。特定の操作で予期される型と提供された型の間の差異。 Golang では、文字列をバイトと連結しようとするとエラーが発生します。これは、主に関係するさまざまなデータ型が原因です。

提供されたコードを分析すると、問題のある行を特定できます。

<code class="go">new_str = new_str + str[i + 1]</code>
ログイン後にコピー

and

<code class="go">return f(g(str)) + str[0]</code>
ログイン後にコピー

この問題は、str[i 1] と str[0] がバイトであるのに対し、new_str と f(g(str)) は文字列であるために発生します。 Golang の厳密な型指定では、異なるデータ型を扱う場合、明示的な変換が必要です。

この不一致を解決するには、連結する前に str 配列のバイト (単一文字) を文字列に変換する必要があります。これは、次のように文字列変換関数を使用して実現できます。

<code class="go">new_str = new_str + string(str[i + 1])</code>
ログイン後にコピー
<code class="go">return f(g(str)) + string(str[0])</code>
ログイン後にコピー

これらの変換を組み込むことで、型が一致し、操作が有効であることが保証されます。

例を示します。修正されたコードのデモ:

<code class="go">package main

import "fmt"

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 main() {
    fmt.Println(g("fruits"))
}</code>
ログイン後にコピー

連結ポイントでバイトを文字列に変換することで、(文字列とバイトの型が一致しない) エラーを排除し、有効な操作を保証します。

以上がGolang で「型が文字列とバイトが一致しません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート