Golang インターフェイスを文字列に変換する

Sheeraz Gul 2023年6月20日
  1. 文字列への Golang インターフェイス
  2. fmt.Sprintf を使用して Golang でインターフェイスを文字列に変換する
  3. Golang で型キャストを使用してインターフェイスを文字列に変換する
Golang インターフェイスを文字列に変換する

このチュートリアルでは、Golang でインターフェイスを文字列に変換する方法を示します。

文字列への Golang インターフェイス

インターフェイスは、Golang で実装されていないメソッドのセットを格納します。インターフェイスのメソッドにはメソッド本体がありません。 Golang では、インターフェイスを空にすることができ、変数宣言によって値を割り当てることができます。

Golang でインターフェイスを文字列に変換する必要がある場合があります。 インターフェイスを Golang で文字列に変換するには、2つの方法があります。

fmt.Sprintf を使用して Golang でインターフェイスを文字列に変換する

メソッド fmt.Sprintf は、Golang で何でも文字列に変換できます。 このメソッドは、Interface を Golang の文字列に変換することもできます。

例を見てみましょう:

package main

import "fmt"

func main() {
    //Interface with a string value
    var Demo interface{} = "Delftstack"
    resultString := fmt.Sprintf("%v", Demo)
    fmt.Println(resultString)

    //Interface with an array value
    var Demo1 interface{} = []int{10, 20, 30, 40, 50}
    resultString1 := fmt.Sprintf("%v", Demo1)
    fmt.Println(resultString1)
}

上記のコードは、値文字列と配列を持つインターフェイスを文字列に変換します。 出力を参照してください。

Delftstack
[10 20 30 40 50]

Program exited.

しかし、Interface が複数の値を持つ配列の場合はどうなるでしょうか。 その場合、インターフェイスの長さの空のスライスを作成し、for ループを使用して各値を文字列に変換し、それらを使用するかスライスに入れることができます。

例を参照してください:

package main

import "fmt"

func main() {
    Demo := []interface{}{
        "Delftstack",
        10, 20, 30,
        []int{6, 5, 9},
        struct{ A, B int }{10, 20},
    }

    // Print the interface content
    fmt.Println(Demo)

    // Print the original type before conversion
    fmt.Printf("Original Type of interface: %T\n", Demo)

    // now create an empty slice based on the length of the Interface
    emptyslice := make([]string, len(Demo))

    // Iterate over the Interface and convert values to string
    for index, value := range Demo {
        emptyslice[index] = fmt.Sprint(value)
    }

    // Print the content of the slice
    fmt.Println(emptyslice)

    // Print the type after conversion
    fmt.Printf("The new type is: %T\n", emptyslice)
    fmt.Printf("%q\n", emptyslice)
}

上記のコードは、複数の値を持つインターフェイスを文字列に変換します。 出力を参照してください:

[Delftstack 10 20 30 [6 5 9] {10 20}]
Original Type of interface: []interface {}
[Delftstack 10 20 30 [6 5 9] {10 20}]
The new type is: []string
["Delftstack" "10" "20" "30" "[6 5 9]" "{10 20}"]

Program exited.

Golang で型キャストを使用してインターフェイスを文字列に変換する

Golang では型キャストも可能です。 インターフェイスを文字列に型キャストできます。 構文 .(string) を使用して何かを文字列に型キャストするプロセスは非常に簡単です。

例を試してみましょう:

package main

import "fmt"

func main() {
    //Interface with a string value
    var Demo interface{} = "Delftstack"
    resultString := Demo.(string)
    fmt.Println(resultString)

}

この場合、文字列値を持つインターフェイスを文字列に型キャストすることしかできません。 配列値を持つインターフェイスは型キャストできません。

出力を参照してください。

Delftstack

Program exited.
著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

関連記事 - Go String