91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
筠连县| 新郑市| 定远县| 虞城县| 罗田县| 抚远县| 龙门县| 涿鹿县| 五大连池市| 敦化市| 融水| 满洲里市| 崇州市| 山丹县| 怀柔区| 龙井市| 固镇县| 获嘉县| 德兴市| 炎陵县| 富阳市| 左权县| 科技| 惠水县| 隆德县| 盐池县| 株洲县| 青阳县| 怀柔区| 白河县| 华容县| 阜新| 泰兴市| 三原县| 莆田市| 伊宁市| 亳州市| 马尔康县| 芜湖县| 辰溪县| 华坪县|