ホームページ > バックエンド開発 > Golang > fmt.Printf() を使用して Go 関数から複数の戻り値を出力するにはどうすればよいですか?

fmt.Printf() を使用して Go 関数から複数の戻り値を出力するにはどうすればよいですか?

DDD
リリース: 2024-12-10 13:45:16
オリジナル
591 人が閲覧しました

How Can I Print Multiple Return Values from a Go Function Using fmt.Printf()?

可変引数関数に複数の戻り値を渡す

Go では、関数は複数の値を返すことができます。ただし、fmt.Println() の呼び出しで関数の戻り値を書式文字列に直接割り当てることは、デフォルトでは不可能です。

fmt.Printf() を使用したアプローチ

実現するには望ましい動作を実現するには、fmt.Println() の代わりに fmt.Printf() を使用する必要があります。ただし、関数呼び出し以外に追加のパラメーターを渡すことは、可変個引数関数呼び出しの仕様で許可されていません。

ラッパー関数の使用

この制限を回避するには、ラッパー関数を使用できます。 Wrap() 関数は複数の値を受け取り、interface{} 値のスライスとして返します。これにより、少なくとも 1 つの戻り値を持つ関数の戻り値を fmt.Printf() に渡すことができます。

Example

package main

import (
    "fmt"
)

// Wrapper function to convert multiple values to a slice of interface{}
func wrap(vs ...interface{}) []interface{} {
    return vs
}

func main() {
    fmt.Printf("1: %v\n", wrap(oneInt())...)
    fmt.Printf("1: %v, 2: %v\n", wrap(twoInts())...)
    fmt.Printf("1: %v, 2: %v, 3: %v\n", wrap(threeStrings())...)
}

func oneInt() int { return 1 }

func twoInts() (int, int) { return 1, 2 }

func threeStrings() (string, string, string) { return "1", "2", "3" }
ログイン後にコピー

Output

1: 1
1: 1, 2: 2
1: 1, 2: 2, 3: 3
ログイン後にコピー

まとめ

wrap() 関数を使用すると、関数の複数の戻り値を次のような可変個引数関数に渡すことができます。 fmt.Printf()。これにより、関数呼び出しの結果をフォーマットして出力する簡単で便利な方法が提供されます。

以上がfmt.Printf() を使用して Go 関数から複数の戻り値を出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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