Go 言語の戻り値の型推論関数は、単一の return ステートメントにのみ適用でき、インターフェースの戻り値や組み込み関数には推論できません。{}具体的な制限としては、次のものが挙げられます。 単一の return ステートメントにのみ適用されます。インターフェースの戻り値を推測できません。{}組み込み関数のタイプを推測できません。
Go 言語の戻り値の型推論の制限と制約
Go 言語では、戻り値の型推論は通常非常に便利です。これにより、コードを記述する際の入力作業を大幅に節約できます。ただし、予期しない結果やコンパイル エラーを引き起こす可能性のある制限や制約もいくつかあります。
1. 単一の return ステートメントにのみ適用可能
戻り値の型推論の関数は、単一の return ステートメントにのみ適用可能です。関数に複数の return ステートメントがある場合、各 return ステートメントに対して型を明示的に指定する必要があります。例:
func sum(a, b int) (int, error) { if a < 0 || b < 0 { return 0, errors.New("invalid input") } return a + b, nil }
2。interface の戻り値を推論できません。{}
Go 言語は interface{ をサポートしていません。 }
戻り値の型推論の値の型。関数が interface{}
型の値を返す場合、その型を明示的に指定する必要があります。例:
type Animal interface { Speak() } func getAnimal() interface{} { return new(Cat) // returns a pointer to a Cat implementation }
3 組み込み関数の型を推論できません
Go 言語の組み込み関数 (fmt.Println( など) )
および math.Pow()
では、戻り値の型を推測できません。つまり、戻り値の型を明示的に指定する必要があります。例:
package main import "fmt" func main() { v := fmt.Println("Hello, world!") // error: cannot infer type from }
実用的なケース
次に、戻り値の型推論を使用する関数の例を示します。
func getLength(s string) int { return len(s) }
この関数では、戻り値 Int 型は、len()
関数を通じて推論されます。
注:
戻り値の型がわからない場合は、常に明示的な型を使用することをお勧めします。これにより、コードが読みやすくなり、潜在的なコンパイル エラーが回避されます。
以上がGo 言語における戻り値の型推論の制限と制約の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。