1 // 遍历可变参数列表——获取每一个参数的值
2 package main
3
4 import(
5 "fmt"
6 "bytes"
7 )
8
9 func joinString(stringList ...string) string{
10 var buffer bytes.Buffer
11 for _, s:= range stringList{
12 buffer.WriteString(s)
13 }
14 return buffer.String();
15 }
16
17 //func main(){
18 // str := joinString("hello!", "go", "语言")
19 // fmt.Println(str)
20 //}
21
22 // 获得可变参数类型——获得每一个参数的类型
23 //package main
24 //import(
25 // "bytes"
26 // "fmt"
27 //)
28 //
29 func printTypeValue(sList ... interface{}) string {
30 fmt.Println(sList)
31 var buffer bytes.Buffer
32 var strType string
33 for _, s := range sList {
34 str := fmt.Sprintf("%v", s)
35 switch s.(type){
36 case bool:
37 strType = "bool"
38 case int:
39 strType = "int"
40 case string:
41 strType = "stringg"
42 }
43
44 buffer.WriteString("value:")
45 buffer.WriteString(str)
46 buffer.WriteString(" s")
47 buffer.WriteString("type:")
48 buffer.WriteString(strType)
49 buffer.WriteString("
")
50
51 }
52 return buffer.String()
53 }
54
55 //func main(){
56 // fmt.Println(printTypeValue("I", true, 520))
57 //}
58
59 // 在多个可变参数函数中传递参数
60 //package main
61 //import "fmt"
62
63 func doPrint(sList ...interface{}){
64 for _, a := range sList {
65 fmt.Println(a)
66
67 }
68 }
69
70 func rawPrint(sList ... interface{}){
71 doPrint(sList)
72
73 }
74 func main(){
75 // 遍历可变参数列表——获取每一个参数的值
76 str := joinString("hello!", "go", "语言")
77 // 获得可变参数类型——获得每一个参数的类型
78 fmt.Println(str)
79 fmt.Println(printTypeValue("I", true, 520))
80 // 在多个可变参数函数中传递参数
81 rawPrint("哈哈,在多个可变参数函数中传递参数")
82 }