Go語言選擇器是如何選擇的

2021-10-04 01:31:46 字數 606 閱讀 6913

我們都知道選擇器其實就是型別裡面的乙個個方法,型別之間可以互相內嵌,經過**證明,選擇器會優先選擇自身定義的方法,然後如果沒有,就會去解析內嵌的型別的方法,例如定義型別t,同時內嵌了t1,t2兩個型別,裡面都有方法f,這是直接呼叫t.f,就會產生二義性,因為t1和t2在解析器看來都算是同一層,如果t1不變,f是在t2的內嵌t2.1定義的方法,這時候舊不會有問題,因為t1比t2高一層,但如果f同時定義在t1.t1-1和t2.t2-1的型別裡面,就會報錯,看出來了把,內嵌決定了方法在那一層,只要方法不在同一層,就沒有二義性,型別本身為最頂層。

package main

import(

"fmt"

)type son1 struct

type gson1 struct

func (gson1) f()

type son2 struct

type gson2 struct

func (son2) f()

type father struct

func (father)f()

func main()

f.f()

}

可以自己拿**去驗證,實踐乃第一真理

go語言選擇語句 switch case

根據傳入條件的不同,選擇語句會執行不同的語句。下面的例子根據傳入的整型變數i的不同而列印不同的內容 switch i 執行上面的案例,將會得到如下結果 i 0時,輸出0 i 1時,輸出1 i 2時,輸出3 i 3時,輸出3 i 4時,輸出4,5,6 i 5時,輸出4,5,6 i 6時,輸出4,5,6...

JQuery選擇器是如何工作的

每次申明乙個jquery物件的時候,返回的是jquery.prototype.init物件,很多人就會不明白,init明明是jquery.fn的方法啊,實際上這裡不是方法,而是init的建構函式,因為js的prototype物件可以實現繼承,加上js的物件只是引用不會是拷貝,new jquery,n...

CSS復合選擇器是什麼?復合選擇器是如何工作

選擇器 描述舉例 選擇器1 選擇器2 多元素選擇器。同時匹配選擇器1和選擇器2,多個選擇器之間用逗號隔開即可。h1,h2,h3 e f 後代元素選擇器,匹配所有屬於e元素後代的f元素,e和f之間用空格隔開即可。box h1 e f 子元素選擇器,匹配所有e元素的子元素為f div h1 e f相鄰元...