溫馨提示×

golang斷言的實現方法是什么

小億
97
2023-10-20 19:20:25
欄目: 編程語言

在Go語言中,斷言可以通過類型斷言(Type Assertion)來實現。

類型斷言的語法形式為x.(T),其中x是一個接口類型的表達式,T是一個具體的類型。它的含義是:判斷x是否實現了接口類型T,如果是,則返回x的動態值(Dynamic Value);如果不是,則會觸發一個panic異常。

下面是一個使用類型斷言的示例:

package main

import "fmt"

func main() {
	var i interface{} = "Hello"

	s, ok := i.(string)
	if ok {
		fmt.Println("i is a string:", s)
	} else {
		fmt.Println("i is not a string")
	}

	f, ok := i.(float64)
	if ok {
		fmt.Println("i is a float64:", f)
	} else {
		fmt.Println("i is not a float64")
	}
}

輸出結果為:

i is a string: Hello
i is not a float64

在上述示例中,i是一個空接口類型的變量,它保存了一個字符串。我們使用類型斷言判斷i是否是一個字符串類型,并將結果賦值給sok。如果斷言成功(oktrue),則輸出i is a string和字符串的值;如果斷言失?。?code>ok為false),則輸出i is not a string。

需要注意的是,如果進行類型斷言時,被斷言的值并不是接口類型的變量或者是nil,則會觸發panic異常。因此,在進行類型斷言之前,通常需要使用類型斷言的安全形式來判斷是否能夠斷言成功,即將斷言結果和一個布爾值進行結合判斷。

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