不定长参数
func f1(args ...int){
for _, v := range args {
fmt.Println(v)
}
}
func f2(a string, b string, args ...int){
fmt.Println(a)
fmt.Println(b)
for _, v := range args {
fmt.Println(v)
}
}
调用:
f1(10,2,3,4,5,6,7,8,9,10,11,12)
fmt.Println("========================")
f2("a","b",10,2,3,4,5,6,7,8,9,10,11,12)
万能参数
package main
import (
"fmt"
)
func myFunc(args interface{}){
fmt.Println("myFunc is called ....")
fmt.Println(args)
_,ok := args.(string)
if !ok {
fmt.Println("不是字符串类型")
} else {
fmt.Println("是字符串类型")
}
}
type Book struct {
auth string
}
func main() {
b := Book{"golang"}
myFunc(b)
myFunc("金融")
myFunc(11)
}