在Go語言中,類型斷言用于檢查接口值(interface value)是否包含一個特定的類型。如果類型斷言成功,它將返回被斷言的類型的值和一個布爾值,表示斷言是否成功。這里有一個簡單的示例來說明如何使用類型斷言處理數據:
package main
import (
"fmt"
)
func main() {
var data interface{}
data = "Hello, World!"
// 使用類型斷言檢查data是否包含字符串類型
if str, ok := data.(string); ok {
fmt.Println("Data is a string:", str)
} else {
fmt.Println("Data is not a string")
}
// 使用類型斷言檢查data是否包含整數類型
if num, ok := data.(int); ok {
fmt.Println("Data is an int:", num)
} else {
fmt.Println("Data is not an int")
}
}
在這個示例中,我們首先創建了一個名為data
的空接口值,并將其賦值為字符串"Hello, World!"
。然后,我們使用類型斷言檢查data
是否包含字符串類型和整數類型。
在第一個類型斷言中,我們將data
斷言為string
類型,并將結果存儲在變量str
中。如果斷言成功,ok
將為true
,否則為false
。我們使用fmt.Println
打印結果。
在第二個類型斷言中,我們將data
斷言為int
類型,并將結果存儲在變量num
中。同樣,我們檢查ok
的值以確定斷言是否成功。
運行此程序將輸出以下結果:
Data is a string: Hello, World!
Data is not an int
這表明data
確實包含一個字符串類型的值,而不包含整數類型的值。