關於Go的可變引數的使用 我踩的坑

2021-08-31 06:53:58 字數 585 閱讀 4837

package main

import (

"log"

)func main()

func print(str string, s ...inte***ce{})

自己寫了乙個print函式,想通過傳遞多個引數,print接收之後列印,但是結果如下:

顯然沒有符合預期,本來想依次列印1,2,3,4,5 結果第乙個%d講整個inte***ce列印出來了,後面的%d 卻沒有了引數。

how to fix it?

看看go的語法糖,將inte***ce切分:

在inte***ce後面加… 即可切分,再次執行 效果如下:

問題解決了。

go的可變引數

可變函式 條件 1 最後乙個引數使用.2 如果把可變引數放在引數前面會把所有的引數都作為可變引數,編譯也會報錯syntax error cannot use with non final parameter 3 可變引數需要用 range來迴圈 4 可變引數其實是個切片 slice 執行原理 1 首...

go語言可變引數的坑

對可變引數不了解的同學,可以先看這篇文章可變引數終極指南 不能通過空介面型別向可變引數傳遞乙個普通的切片,需要將普通切片轉換為空介面切片 可變引數不支援確定引數和slice解包的混合。package main func demo args inte ce func main arg3 inte ce...

關於函式的可變引數

關於函式的可變引數 前提 一般我們程式設計的時候,函式中形式引數的數目通常是確定的,在呼叫時要依次給出與形式引數對應的實際引數。但在某些情況下我們希望函式的引數個數可以根據需要確定,因此c語言引入可變引數函式。一 什麼是可變引數 函式中引數的個數和型別是可變的,這就是可變引數 例如 printf 這...