Go 関数は、名前付き戻り値、タプル、構造体、エラー処理の使用など、複数の値を返すことができます。名前付き戻り値を使用すると、アクセスと操作を容易にするために、各戻り値に名前を付けることができます。タプルと構造体を使用して戻り値を保存および整理できますが、値を手動で抽出して変換する必要があります。エラー処理メカニズムは、関数の実行ステータスを処理し、エラー メッセージを返すための簡潔な方法を提供します。
Go 言語では関数が複数の値を返すことができるため、柔軟性が高くなりますが、これらの戻り値の処理には追加の考慮事項も必要です値を決定するとき。この記事では、Go 関数の戻り値を効果的に処理するためのテクニックをいくつか紹介します。
名前付き戻り値の使用は、複数の戻り値を処理する一般的な方法です。各戻り値に名前を付けることで、それらに簡単にアクセスして操作できるようになります。
func GetUserInfo(id int) (name string, age int, err error) { // Implement the function } func main() { name, age, err := GetUserInfo(1) if err != nil { // Handle the error } fmt.Printf("Name: %s, Age: %d\n", name, age) }
Go 言語のタプルは、任意の数の値を格納するために使用できる型なしのデータ構造です。タプルを使用して関数の戻り値を処理できますが、値を手動で抽出して変換する必要があります。
func GetUserInfo(id int) (string, int, error) { // Implement the function } func main() { userInfo := GetUserInfo(1) name := userInfo[0] age := userInfo[1] fmt.Printf("Name: %s, Age: %d\n", name, age) }
構造体は、関連するフィールドをグループ化する複合データ型です。構造体を使用して、関数の戻り値を整理およびカプセル化できます。
type UserInfo struct { Name string Age int } func GetUserInfo(id int) (UserInfo, error) { // Implement the function } func main() { userInfo, err := GetUserInfo(1) if err != nil { // Handle the error } fmt.Printf("Name: %s, Age: %d\n", userInfo.Name, userInfo.Age) }
Go 言語のエラー処理メカニズムは、エラーを処理するための簡潔な方法を提供します。 err
型を使用すると、関数の実行ステータスを示し、戻り時にエラー メッセージを渡すことができます。
func GetUserInfo(id int) (string, int, error) { // Implement the function } func main() { name, age, err := GetUserInfo(1) if err != nil { // Handle the error return } fmt.Printf("Name: %s, Age: %d\n", name, age) }
次に、名前付き戻り値を使用して関数の戻り値を処理する実際的な例を示します。
func CalculateTax(salary int) (tax float64, netSalary float64) { taxRate := 0.2 // Assume a tax rate of 20% tax = salary * taxRate netSalary = salary - tax return } func main() { salary := 1000 tax, netSalary := CalculateTax(salary) fmt.Printf("Salary: %d, Tax: %f, Net Salary: %f\n", salary, tax, netSalary) }
この例では、CalculateTax
関数 tax
と netSalary
という 2 つの名前付き値が返されます。 main
関数では、名前付きの戻り値を使用してこれらの値を受け取り、処理します。
以上がGolang関数の戻り値処理スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。