質問: 以下のようなコードになりますが、PrintlnType関数で受け取った引数の型を 取得して、switch文で表示させたいのですが、reflectなどを試してみましたが、引数部分でエラーが出ていて うまくいきませんでした ``` package main import "fmt" func main() { PrintlnType(3) // intです PrintlnType("string") //stringです } func PrintlnType(type) { // ここでエラー switch type { // ここで引数の型を取得したい case type==int: fmt.Println("intです") case type==string: fmt.Println("stringです") default: fmt.Println("その他") } } ```
回答: 以下のようにすると出来ます。 引数の型は空のインターフェースを指定しています。 ``` func PrintlnType(t interface{}) { switch t.(type) { case int: fmt.Println("intです") case string: fmt.Println("stringです") default: fmt.Println("その他") } } ```