ホームページ >バックエンド開発 >Golang >Go で []interface{} を []string に変換するにはどうすればよいですか?

Go で []interface{} を []string に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 11:28:131072ブラウズ

How to Convert a []interface{} to a []string in Go?

Golang で []interface{} を []string に変換する

github.com/fatih/structs パッケージを使用する場合、 toValues() 関数から取得した []interface{} 値を、 csvパッケージ。ただし、これらの型はメモリ レイアウトが異なるため、この変換を直接実行することはできません。

この問題に対処するには、さまざまな型の値を文字列として表現する方法を定義する必要があります。簡単なアプローチは、値を反復処理し、 fmt.Sprint() を使用して文字列表現を取得することです。

これを示すコード例を次に示します。

t := []interface{}{
    "zero",
    1, 2.0, 3.14,
    []int{4, 5},
    struct{ X, Y int }{6, 7},
}

s := make([]string, len(t))
for i, v := range t {
    s[i] = fmt.Sprint(v)
}

これにより、次の出力が生成されます。

[zero 1 2 3.14 [4 5] {6 7}]
["zero" "1" "2" "3.14" "[4 5]" "{6 7}"]

この手法を採用すると、さまざまな型の値を含む []interface{} を []string に簡単に変換できます。 csv パッケージを効果的に利用してさらなる処理を行うことができます。

以上がGo で []interface{} を []string に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。