関数のインターフェイス型引数について
【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト
◆インターフェイス型の引数
任意の型の可変長引数を受け取る関数は、引数の型をインターフェイス型にする
例えば
func printmsgs(args...interface{}) {
fmt.println(args...)
}
・サンプルコード
// printmsgs.go
package main
import "fmt"
//printmsgs - 任意の形の可変長引数の例
func printmsgs(args ...interface{}) {
fmt.Println(args...)
}
//Dog - 独自の型の例
type Dog struct {
name string
age int
}
func main() {
printmsgs("わんこだよ。")
printmsgs(88, "わんこだよ。")
printmsgs(-1, "わんこだ。", "ダメだこりゃ")
dog := Dog{"Pochi", 12}
printmsgs(dog, "わんこだよ。")
}
・実行
PS D:\GO言語\サンプルプログラム\Go-6\function> go run printmsgs.go
わんこだよ。
88 わんこだよ。
-1 わんこだ。 ダメだこりゃ
{Pochi 12} わんこだよ。