亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
金坛市| 和顺县| 金门县| 天峨县| 贵港市| 姜堰市| 乌兰察布市| 桃江县| 区。| 抚州市| 柯坪县| 灵山县| 满洲里市| 陇西县| 铁岭县| 宝丰县| 浪卡子县| 黄骅市| 凉城县| 长岭县| 内黄县| 山东省| 长顺县| 麟游县| 龙南县| 辽宁省| 三江| 乐亭县| 泾阳县| 普定县| 平阳县| 枣强县| 宾阳县| 福安市| 建水县| 冷水江市| 沽源县| 舞阳县| 故城县| 定南县| 蕉岭县|