函數(shù)返回值類型轉(zhuǎn)換分為兩種方式:type assertion 檢查值與特定類型是否兼容,不兼容則報(bào)錯(cuò);type conversion 不檢查兼容性,直接轉(zhuǎn)換。實(shí)戰(zhàn)中,可將浮點(diǎn)型轉(zhuǎn)換為整數(shù),或?qū)⒃M中的整數(shù)轉(zhuǎn)換為字符串。
Go 語(yǔ)言中函數(shù)返回值的類型轉(zhuǎn)換
在 Go 語(yǔ)言中,函數(shù)返回值的類型可以用 type assertion
或 type conversion
來(lái)轉(zhuǎn)換。
Type Assertion
使用 type assertion 檢查值是否與特定類型兼容,并將該值轉(zhuǎn)換為所期望的類型,如果類型不兼容,會(huì)導(dǎo)致錯(cuò)誤:
func GetValue() interface{} { return "Hello, world!" } func main() { value := GetValue() // 檢查 value 是否為字符串類型 if str, ok := value.(string); ok { fmt.Println(str) // 輸出: Hello, world! } }
登錄后復(fù)制
Type Conversion
使用 type conversion 將值的類型轉(zhuǎn)換為所期望的類型,無(wú)論值是否兼容,都會(huì)進(jìn)行轉(zhuǎn)換:
func main() { var num float64 = 3.14 // 將 float64 轉(zhuǎn)換為 int numInt := int(num) fmt.Println(numInt) // 輸出: 3 }
登錄后復(fù)制
實(shí)戰(zhàn)案例
以下是一個(gè)實(shí)戰(zhàn)案例,演示如何轉(zhuǎn)換函數(shù)返回值的類型:
func GetEmployeeInfo() (string, int) { return "John Doe", 30 } func main() { name, age := GetEmployeeInfo() // 將 age 轉(zhuǎn)換為 string 類型 ageStr := strconv.Itoa(age) fmt.Println("Employee Name:", name) fmt.Println("Employee Age:", ageStr) }
登錄后復(fù)制
輸出:
Employee Name: John Doe Employee Age: 30
登錄后復(fù)制