[Go] golang類型斷言


類型斷言有點像向下轉型,接口類型轉到具體的實現實例類型上
類型斷言是一個使用在接口值上的操作。語法上它看起來像x.(T)被稱為斷言類型,這里x表示一個接口的類型和T表示一個類型

 

package main

import (
	"fmt"
)

//定義一個接口
type Person interface {
	Say()
}

//定義一個類型
type Tsh struct {
	name string
}

//實現接口的方法
func (tsh *Tsh) Say() {
	fmt.Println("我是 Tsh類型的方法,我是", tsh.name)
}

//測試方法
//傳遞的參數是Person類型
func test(p Person) {
	//注意:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	//如果要使用它的實現實例Tsh的name屬性,那么就需要類型斷言
	name := p.(*Tsh).name
	fmt.Println(name)
}
func main() {
	//實例化
	tsh := Tsh{
		name: "陶士涵",
	}
	//傳入測試方法
	test(&tsh)
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM