HOWTO · Go
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.