1. 程式人生 > >go語言學習之可變引數函式

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 }