中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Go語言接口類型斷言怎樣用

小樊
82
2024-11-08 13:28:14
欄目: 編程語言

在Go語言中,接口類型斷言用于將一個接口類型的變量轉換為具體的類型。類型斷言的語法如下:

value, ok := interfaceVar.(TargetType)

其中,interfaceVar 是一個接口類型的變量,TargetType 是你想要轉換的具體類型。類型斷言會返回兩個值:轉換后的值(value)和一個布爾值(ok),表示類型斷言是否成功。

下面是一個簡單的示例,演示了如何使用類型斷言:

package main

import (
	"fmt"
)

type Animal interface {
	Speak() string
}

type Dog struct{}

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

type Cat struct{}

func (c Cat) Speak() string {
	return "Meow!"
}

func main() {
	var animal Animal
	animal = Dog{}

	// 類型斷言為 Dog 類型
	dog, ok := animal.(Dog)
	if ok {
		fmt.Println("Animal is a dog:", dog.Speak())
	} else {
		fmt.Println("Animal is not a dog")
	}

	// 類型斷言為 Cat 類型
	cat, ok := animal.(Cat)
	if ok {
		fmt.Println("Animal is a cat:", cat.Speak())
	} else {
		fmt.Println("Animal is not a cat")
	}
}

在這個示例中,我們定義了一個 Animal 接口,以及兩個實現了該接口的結構體:DogCat。在 main 函數中,我們創建了一個 Animal 類型的變量 animal,并將其賦值為 Dog 類型的一個實例。然后,我們使用類型斷言將 animal 轉換為 Dog 類型和 Cat 類型,并分別輸出結果。

需要注意的是,如果類型斷言失敗,ok 的值為 false,此時轉換后的值(value)將為該類型的零值。

0
安泽县| 淳安县| 长汀县| 博白县| 九寨沟县| 浦北县| 久治县| 五原县| 沙河市| 万年县| 论坛| 马关县| 巴里| 图木舒克市| 邳州市| 吴桥县| 都兰县| 马关县| 沈阳市| 吴川市| 昌图县| 荔浦县| 元氏县| 宜丰县| 大足县| 永昌县| 股票| 宜兴市| 五寨县| 武邑县| 木兰县| 呈贡县| 县级市| 湛江市| 邵阳市| 五峰| 仁寿县| 玛纳斯县| 凉山| 从化市| 额济纳旗|