在Go語言中,類型斷言用于檢查接口值(interface value)是否包含一個(gè)特定的類型。如果類型斷言成功,它將返回被斷言的類型的值和一個(gè)布爾值,表示斷言是否成功。這里有一個(gè)簡單的示例來說明如何使用類型斷言處理數(shù)據(jù):
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是否包含整數(shù)類型
if num, ok := data.(int); ok {
fmt.Println("Data is an int:", num)
} else {
fmt.Println("Data is not an int")
}
}
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)名為data
的空接口值,并將其賦值為字符串"Hello, World!"
。然后,我們使用類型斷言檢查data
是否包含字符串類型和整數(shù)類型。
在第一個(gè)類型斷言中,我們將data
斷言為string
類型,并將結(jié)果存儲(chǔ)在變量str
中。如果斷言成功,ok
將為true
,否則為false
。我們使用fmt.Println
打印結(jié)果。
在第二個(gè)類型斷言中,我們將data
斷言為int
類型,并將結(jié)果存儲(chǔ)在變量num
中。同樣,我們檢查ok
的值以確定斷言是否成功。
運(yùn)行此程序?qū)⑤敵鲆韵陆Y(jié)果:
Data is a string: Hello, World!
Data is not an int
這表明data
確實(shí)包含一個(gè)字符串類型的值,而不包含整數(shù)類型的值。