Go の Sprintf に変数パラメーターを渡す
Go の Printf 関数を使用すると、指定された書式文字列を使用して出力を書式設定して印刷できます。可変数のパラメータ。ただし、値の配列またはスライスをパラメータとして渡したい場合は、型エラーが発生する可能性があります。
次の例を考えてみましょう:
<code class="go">s := []string{"a", "b", "c", "d"} // Result from regexp.FindStringSubmatch() fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])</code>
このコードを実行すると、エラーが発生します:
cannot use v (type []string) as type []interface {} in argument to fmt.Printf
これを解決するには、スライスをタイプ []interface{} として宣言する必要があります。これは、Printf がそのタイプのパラメータを予期しているためです。
s := []interface{}{"a", "b", "c", "d"} fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])
もう 1 つのオプションは、Printf に渡す前に、[]string を []interface{} に手動で変換することです。
<code class="go">ss := []string{"a", "b", "c"} is := make([]interface{}, len(ss)) for i, v := range ss { is[i] = v }</code>
このアプローチを使用すると、スライスを変数パラメーターとして Printf に渡すことができます。
以上がGoで配列またはスライスパラメータをSprintfに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。