1. ホーム
  2. string

[解決済み] golangの[]stringと...stringの違いは何ですか?

2022-03-03 21:46:18

質問

Go言語では。

[]string は文字列配列

を使用し、さらに ...string をパラメータとして使用します。

この違いは何ですか?

関数の定義。

func f(args ...string) {}

この関数を以下のように呼び出すことはできますか?

args := []string{"a", "b"}

f(args)

解決方法は?

<ブロッククオート

[]string は文字列配列

技術的には、基礎となる配列を参照するスライスです。

を使用し、さらに ...string をパラメータとして使用します。

この違いは何ですか?

構造に関しては、特に何もありません。両方の構文から得られるデータ型は同じです。

... パラメータの構文は、バリアディックパラメータを作ります。これは、ゼロまたはそれ以上の string の引数を取り、それらをスライスとして参照する。

を呼び出すことに関して f の場合、以下の構文で文字列のスライスをvariadicパラメータに渡すことができます。

func f(args ...string) {
    fmt.Println(len(args))
}


args := []string{"a", "b"}

f(args...)

この構文は、リテラル構文を使用して構築されたスライス、または可変長パラメータを表すスライスのいずれでも使用可能です。 (実際には両者に違いはないため) .

http://play.golang.org/p/QWmzgIWpF8