Go言語インタフェース変換の実装方法

Golangでは、インターフェイスタイプの変換はタイプアサーションを使用して達成できます。

型アサーションの構文は次のとおりです。

value, ok := interfaceVar.(Type)

interfaceVar は変換対象のインターフェース変数、Type は変換後の型です。

変換が成功していれば、ok は true になり、value に変換後の値が格納されます。変換が失敗していれば、ok は false になり、value は対象型のゼロ値になります。

インターフェイスタイプ変換の実装方法を示すサンプルコードを以下に示します。

package main

import (
	"fmt"
)

type Animal interface {
	Sound() string
}

type Dog struct{}

func (d Dog) Sound() string {
	return "Woof!"
}

func main() {
	var animal Animal = Dog{}
	dog, ok := animal.(Dog)
	if ok {
		fmt.Println("Animal is a Dog")
		fmt.Println(dog.Sound())
	} else {
		fmt.Println("Animal is not a Dog")
	}
}

ネイティブな日本語で文を言い換えてください。1つのオプションのみ必要です。

Animal is a Dog
Woof!

上のコードで、Animalはインターフェース型で、Dogはそれを実装する型です。main関数で、Animal型の変数animalが定義され、Dog型のインスタンスに代入されます。

次に、型アサーションを使って、animalをDog型の変数dogに変換します。animalは実際にはDog型であるため、変換は成功し、okの値はtrueになり、dogの値は変換されたDog型のインスタンスになります。

最後に、特定の動作を行うには、dog のメソッドにアクセスします。

bannerAds