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

溫馨提示×

golang接口斷言的使用方法是什么

小億
73
2023-10-23 11:11:31
欄目: 編程語言

在Go中,接口斷言是一種將接口類型的值轉換為其他具體類型的方法。接口斷言可以使用類型斷言表達式來進行,其語法為:

value, ok := interfaceValue.(Type)

其中,interfaceValue 是一個接口類型的值,Type 是希望將其轉換為的具體類型。

接口斷言返回兩個值,valueok。如果接口值的動態類型與斷言的類型匹配,則value 會是該具體類型的值,而ok 會是 true 。如果斷言失敗,value 會是該具體類型的零值,而 ok 會是 false

下面是一個使用接口斷言的示例:

package main

import "fmt"

type Shape interface {
    Area() float64
}

type Circle struct {
    radius float64
}

func (c Circle) Area() float64 {
    return 3.14 * c.radius * c.radius
}

func main() {
    var s Shape
    c := Circle{radius: 5}
    s = c

    if circle, ok := s.(Circle); ok {
        fmt.Println("Circle area:", circle.Area())
    } else {
        fmt.Println("Not a circle")
    }
}

在上述代碼中,我們定義了一個 Shape 接口和一個實現了 Shape 接口的 Circle 結構體。在 main 函數中,我們將 Circle 結構體的實例賦值給 Shape 接口類型的變量 s 。然后,我們使用接口斷言來判斷 s 是否是一個 Circle 類型的值,并調用 Circle 結構體的 Area 方法來計算面積。

如果接口斷言成功,我們打印出圓的面積;否則,打印出“Not a circle”。

0
旌德县| 炉霍县| 宁城县| 普兰店市| 佳木斯市| 东乌珠穆沁旗| 屯留县| 南木林县| 临潭县| 武城县| 杂多县| 红安县| 比如县| 淳安县| 红河县| 临猗县| 全南县| 稻城县| 昌宁县| 根河市| 公主岭市| 东方市| 大连市| 镇赉县| 金坛市| 湘潭市| 章丘市| 长汀县| 吉安市| 四子王旗| 河间市| 昌都县| 黄冈市| 宁武县| 舟曲县| 孟州市| 嫩江县| 高雄县| 资阳市| 开封市| 靖边县|