golang函式形參接收任意型別的切片

2021-10-08 18:36:48 字數 656 閱讀 7902

在某些情況下乙個函式可能既需要接收string型別的切片也可能接收int型別的切片,或接收自定義型別的切片。我首先想到的辦法是建立乙個inte***ce{}型別的切片,如下所示:

func

demo

(s [

]inte***ce)}

func

test

(t *testing.t)

demo

(s)}

但不幸的是,我得到了「cannot use s (type int) as type inte***ce {} in argument to demo」這個錯誤。原因是inte***ce{}型別的變數可以指向任意型別的值,但inte***ce{}型別的指標只能指向inte***ce{}型別的值而不能指向任意型別的切片。

為了實現上述功能,我想到的辦法是利用反射中的slice:

func

demo

(s inte***ce)}

}func

test

(t *testing.t)

demo

(s1)

s2 :=

string

demo

(s2)

}

Golang 如何實現函式的任意型別傳參

package main import fmt func init func main 實現傳單個任何型別的引數 func test1 v inte ce 實現傳任意多個任意型別的引數 func test2 v inte ce 補www.cppcns.com充 golang 函式作為引數傳遞 的例子...

關於方法 函式不帶形參接收實參的問題

今天突然發現了乙個問題,如下 我在寫vue的時候檢查 router方法時,突然感覺到 router的push 方法看著有些彆扭,最後回顧了一下js的push 方法,然後自己寫了一段有關陣列的 控制台檢查,對比陣列的push 就發現vue中 圖一 的push 方法帶了三個形參,而陣列中的push 方法...

函式指標形參

一 在介紹指標形參之前,先簡要說明下兩個運算子 和 1 取址運算子 用來取得其運算元的位址。取址運算子的運算元必須是在記憶體中可定址到。換句話說,該運算子只能用作函式或物件 例如左值 而不可以用於位欄位,以及那些未被儲存型別修飾符register宣告的內容。float x,ptr ptr x 合法 ...