ホームページ  >  記事  >  バックエンド開発  >  Golang エラーの修正方法: 無効な操作: 'x' (演算子 'y') 'z' (タイプ T と U の不一致)

Golang エラーの修正方法: 無効な操作: 'x' (演算子 'y') 'z' (タイプ T と U の不一致)

PHPz
PHPzオリジナル
2023-08-18 22:35:071042ブラウズ

如何修复golang报错:invalid operation: \'x\' (operator \'y\') \'z\' (mismatched types T and U)

golang エラーの修正方法: 無効な操作: 'x' (演算子 'y') 'z' (タイプ T と U の不一致)

golang を使用したプログラミングこれを行うと、さまざまなエラーが発生することがよくあります。よくあるエラーの 1 つは、「無効な操作: 'x' (演算子 'y') 'z' (タイプ T と U の不一致)」です。このエラーは通常、互換性のないデータ型間で演算子を使用しようとしたときに発生します。

問題をよりよく理解するために、いくつかのコード例を見てみましょう:

例 1:

package main

import "fmt"

func main() {
    var x int = 5
    var y string = "hello"

    result := x + y

    fmt.Println(result)
}

このコードは、整数と文字列を変換しようとします。結果を変数に格納します。ただし、整数型と文字列型には互換性がないため、コンパイラは「無効な操作: x y (int 型と string 型が一致しません)」というエラーを報告します。

このエラーを修正するには、演算子が操作対象のデータ型に適切であることを確認する必要があります。この例では、整数を文字列に変換してから文字列連結操作を実行する必要があります。修正されたコードは次のようになります。

package main

import "fmt"

func main() {
    var x int = 5
    var y string = "hello"

    result := fmt.Sprintf("%d%s", x, y)

    fmt.Println(result)
}

例 2:

package main

import "fmt"

type Employee struct {
    name string
    age  int
}

func main() {
    var x Employee = Employee{name: "John", age: 30}
    var y string = "30"

    result := x.age + y

    fmt.Println(result)
}

上の例では、整数と文字列を加算し、その結果を変数 middle に格納しようとしています。ただし、整数型と文字列型には互換性がないため、コンパイラは「無効な操作: x.age y (int 型と string 型が一致しません)」というエラーを報告します。

このエラーを修正するには、整数を文字列に変換し、文字列の連結操作を実行する必要があります。修正されたコードは次のようになります。

package main

import "fmt"

type Employee struct {
    name string
    age  int
}

func main() {
    var x Employee = Employee{name: "John", age: 30}
    var y string = "30"

    result := fmt.Sprintf("%d%s", x.age, y)

    fmt.Println(result)
}

上記の 2 つの例から、このエラーを修正する一般的な方法は、データを操作する前に適切な関数を使用してデータ型を変換することであることがわかります。ここでは、fmt.Sprintf 関数を使用して整数を文字列に変換しました。

要約すると、golang エラー「無効な操作: 'x' (演算子 'y') 'z' (型 T と U の不一致)」が発生した場合は、演算子とオペランドの関係を確認する必要があります。データ型が一致するかどうか。一致しない場合は、対応する操作を実行するために、適切な関数を使用してデータ型を変換する必要があります。この記事がこのエラーをより適切に修正し、golang コードを作成する能力を向上させるのに役立つことを願っています。

以上がGolang エラーの修正方法: 無効な操作: 'x' (演算子 'y') 'z' (タイプ T と U の不一致)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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