golang接口可以嵌套嗎
在Go語言中,不僅結(jié)構(gòu)體與結(jié)構(gòu)體之間可以嵌套,接口與接口間也可以通過嵌套創(chuàng)造出新的接口。
一個(gè)接口可以包含一個(gè)或多個(gè)其他的接口,這相當(dāng)于直接將這些內(nèi)嵌接口的方法列舉在外層接口中一樣。只要接口的所有方法被實(shí)現(xiàn),則這個(gè)接口中的所有嵌套接口的方法均可以被調(diào)用。
比如接口 File 包含了 ReadWrite 和 Lock 的所有方法,它還額外有一個(gè) Close() 方法。
type ReadWrite interface { Read(b Buffer) bool Write(b Buffer) bool } type Lock interface { Lock() Unlock() } type File interface { ReadWrite Lock Close() }