溫馨提示×

go結構體強制類型轉換的方法是什么

go
小億
129
2023-08-07 23:54:47
欄目: 編程語言

在Go語言中,結構體之間的強制類型轉換需要使用類型斷言。類型斷言的語法如下:

value, ok := expression.(Type)

其中,expression是要轉換的變量,Type是目標類型。ok是一個布爾值,用于判斷轉換是否成功。

下面是一個示例:

type Circle struct {
radius float64
}
type Rectangle struct {
width  float64
height float64
}
func main() {
var shape interface{}
// 創建一個Circle類型的變量
shape = Circle{radius: 5.0}
// 將shape強制轉換為Circle類型
if circle, ok := shape.(Circle); ok {
fmt.Printf("Circle radius: %.2f\n", circle.radius)
} else {
fmt.Println("Not a Circle")
}
// 將shape強制轉換為Rectangle類型
if rectangle, ok := shape.(Rectangle); ok {
fmt.Printf("Rectangle width: %.2f, height: %.2f\n", rectangle.width, rectangle.height)
} else {
fmt.Println("Not a Rectangle")
}
}

在上面的示例中,我們先創建了一個空接口變量shape,然后將其賦值為Circle類型的變量。接著通過類型斷言將shape強制轉換為Circle類型,并打印出radius字段的值。由于shape實際上是一個Circle類型的變量,所以類型斷言成功,打印出了radius字段的值。然后我們嘗試將shape強制轉換為Rectangle類型,由于shape實際上不是Rectangle類型的變量,所以類型斷言失敗,打印出了"Not a Rectangle"。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女