GO 中實現擴充套件與復用

2021-10-05 09:49:33 字數 781 閱讀 2915

go語言中沒有繼承,但是提供了一種擴充套件與復用。

廢話少說,直接上**:

package ch11

import (

"fmt"

"testing"

)type pet struct

func (p *pet) speak()

func (p *pet) speakto(host string)

type dog struct

func (d *dog) speak()

func (d *dog)speakto(host string)

func testdog(t *testing.t)

以上**可以優化。因為go提供一種 提供了一種匿名巢狀型別,我們可以實現組合使用,以上**優化後為:

package ch11

import (

"fmt"

"testing"

)//go裡沒有繼承,但是可以擴充套件與復用,提供了一種匿名巢狀型別

//擴充套件與復用

type pet struct

func (p *pet) speak()

func (p *pet) speakto(host string)

//匿名巢狀型別

type dog struct

//func (d *dog) speak()

//func (d *dog)speakto(host string)

func testdog(t *testing.t)

在自主與復用中徘徊

一旦接觸上層,便與選擇結下了不解之緣,或許這種選擇無處不在,而我們存在的意義就是決定選擇。寫 時,在通用與效率間選擇,而到了架構,卻又徘徊在了自主與復用之間。需要乙個框架,但尚沒有成熟的拿來用,那麼選擇來了。復用,即修改,似乎是最省時省力的。但是綜合考慮一下,似乎很多問題都可能降低效率。第一 復用乙...

在C 中實現Socket埠復用

一 什麼是埠復用 因為在winsock的實現中,對於伺服器的繫結是可以多重繫結的,在確定多重繫結使用誰的時候,根據一條原則是誰的指定最明確則將包遞交給誰,而且沒有許可權之分。這種多重繫結便稱之為埠復用。二 我們如何實現socket埠復用 其實我們要實現埠復用很簡單,我們只要使用setsocketop...

在C 中實現Socket埠復用

一 什麼是埠復用 因為在winsock的實現中,對於伺服器的繫結是可以多重繫結的,在確定多重繫結使用誰的時候,根據一條原則是誰的指定最明確則將包遞交給誰,而且沒有許可權之分。這種多重繫結便稱之為埠復用。二 我們如何實現socket埠復用 其實我們要實現埠復用很簡單,我們只要使用setsocketop...