Golang の Any 型について

Any 型とは

type any

type any = interface{}

any is an alias for interface{} and is equivalent to interface{} in all ways.
↑ interface{} のエイリアスらしい。

any の使い方

interface{} も使い方は同じ。

package main

import (
	"fmt"
)

func main() {

	// var test interface{} = "test"
	var test any = "test"
	
	// 2つ目の返り値を取得しない場合、
	// 型を間違えると panic() を起こすので注意。

	t, valid := test.(string)
	// t, valid := test.(bool)
	// t, valid := test.(int)
	fmt.Print(t, ": ", valid, "\n")
	
	// .(type) で型を調べられる。
	// 但し、switch 構文限定。
	switch test.(type) {
	case string:
		fmt.Print("this type is String.\n")
	case int:
		fmt.Print("this type is Int.\n")
	case bool:
		fmt.Print("this type is Boolean.\n")
	}
}
カテゴリー:Go