go语言学习之可变参数函数

 

 

 

 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("\ts")
47         buffer.WriteString("type:")
48         buffer.WriteString(strType)
49         buffer.WriteString("\n")
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 }

 

posted on 2018-11-14 09:55  奔跑吧,蜗牛!  阅读(864)  评论(0编辑  收藏  举报

导航