ファンクション キーを使用したマッピング
関数をキーとして使用してデータをマッピングすると、値に柔軟にアクセスできます。ただし、以下に示すように、キーとして関数を使用してマップを作成しようとすると、エラーが発生します:
type Action func(int) func test(a int) { } func test2(a int) { } func main() { x := map[Action]bool{} x[test] = true x[test2] = false }
エラー: 無効なマップ キー タイプ アクション
言語制限
Go 言語仕様では、関数をマップ キーとして使用できないと明示的に規定されています。この制限は、キーが等価比較などの演算子をサポートする必要があるという要件に由来しますが、これは関数では不可能です。
The comparison operators == and != must be fully defined for operands of the key type; thus the key type must not be a function, map, or slice.
したがって、キー比較の一貫性を確保するために、関数をマップ キーとして使用することは言語によって禁止されています。潜在的なエラーを防ぎます。
以上が関数は Go マップのキーとして使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。