mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-24 15:18:57 +00:00
parent
9031e24132
commit
c28e6f2899
@ -17,8 +17,8 @@ func sum(vals...int) int {
|
||||
sum函數返迴任意個int型參數的和。在函數體中,vals被看作是類型爲[] int的切片。sum可以接收任意數量的int型參數:
|
||||
|
||||
```Go
|
||||
fmt.Println(sum()) // "0"
|
||||
fmt.Println(sum(3)) // "3"
|
||||
fmt.Println(sum()) // "0"
|
||||
fmt.Println(sum(3)) // "3"
|
||||
fmt.Println(sum(1, 2, 3, 4)) // "10"
|
||||
```
|
||||
|
||||
@ -41,15 +41,13 @@ fmt.Printf("%T\n", g) // "func([]int)"
|
||||
可變參數函數經常被用於格式化字符串。下面的errorf函數構造了一個以行號開頭的,經過格式化的錯誤信息。函數名的後綴f是一種通用的命名規范,代表該可變參數函數可以接收Printf風格的格式化字符串。
|
||||
|
||||
```Go
|
||||
func errorf(linenum int, format string, args...interface{})
|
||||
{
|
||||
func errorf(linenum int, format string, args ...interface{}) {
|
||||
fmt.Fprintf(os.Stderr, "Line %d: ", linenum)
|
||||
fmt.Fprintf(os.Stderr, format, args…)
|
||||
fmt.Fprintf(os.Stderr, format, args...)
|
||||
fmt.Fprintln(os.Stderr)
|
||||
}
|
||||
linenum, name := 12, "count"
|
||||
errorf(linenum, "undefined: %s", name) // "Line 12:
|
||||
undefined: count"
|
||||
errorf(linenum, "undefined: %s", name) // "Line 12: undefined: count"
|
||||
```
|
||||
|
||||
interfac{}表示函數的最後一個參數可以接收任意類型,我們會在第7章詳細介紹。
|
||||
@ -61,8 +59,7 @@ interfac{}表示函數的最後一個參數可以接收任意類型,我們會
|
||||
**練習5.17:**編寫多參數版本的ElementsByTagName,函數接收一個HTML結點樹以及任意數量的標籤名,返迴與這些標籤名匹配的所有元素。下面給出了2個例子:
|
||||
|
||||
```Go
|
||||
func ElementsByTagName(doc *html.Node, name...string)
|
||||
[]*html.Node
|
||||
func ElementsByTagName(doc *html.Node, name...string) []*html.Node
|
||||
images := ElementsByTagName(doc, "img")
|
||||
headings := ElementsByTagName(doc, "h1", "h2", "h3", "h4")
|
||||
```
|
@ -39,7 +39,7 @@
|
||||
- [x] 5.4 Errors
|
||||
- [x] 5.5 Function Values
|
||||
- [x] 5.6 Anonymous Functions
|
||||
- [ ] 5.7 Variadic Functions
|
||||
- [x] 5.7 Variadic Functions
|
||||
- [x] 5.8 Deferred Function Calls
|
||||
- [ ] 5.9 Panic
|
||||
- [ ] 5.10 Recover
|
||||
|
Loading…
Reference in New Issue
Block a user