日常 Go語言聖經 可變引數習題

2021-09-27 09:05:58 字數 1550 閱讀 4721

1.引數數量可變的函式稱為為可變引數函式,例子就是fmt.printf和類似函式

2.引數列表的最後乙個引數型別之前加上省略符號「...」

3.雖然在可變引數函式內部,...int 型引數的行為看起來很像切片型別,但實際上,可變引數函式和以切片作為引數的函式是不同的

型別不同:fmt.printf("%t\n", f)

4.函式名的字尾f是一種通用的命名規範,代表該可變引數函式可以接收printf風格的格式化字串

5.inte***c{}表示函式的最後乙個引數可以接收任意型別

練習5.15: 編寫類似sum的可變引數函式max和min。考慮不傳參時,max和min該如何處理,再編寫至少接收1個引數的版本。

練習5.16:編寫多引數版本的strings.join。

練習5.17:編寫多引數版本的elementsbytagname,函式接收乙個html結點樹以及任意數量的標籤名,返回與這些標籤名匹配的所有元素。下面給出了2個例子:

練習5.15: 編寫類似sum的可變引數函式max和min。考慮不傳參時,max和min該如何處理,再編寫至少接收1個引數的版本。

*/func max(vals ...int) (int, error)

for _, v := range vals

}

return m, nil }/*

練習5.16:編寫多引數版本的strings.join。

*/func join(sep string, strs ...string) (string, error)

for i, v := range strs else

}return res, nil}/*

練習5.17:編寫多引數版本的elementsbytagname,函式接收乙個html結點樹以及任意數量的標籤名,返回與這些標籤名匹配的所有元素。下面給出了2個例子:

日常 Go語言聖經 Map習題

練習 4.8 修改charcount程式,使用unicode.isletter等相關的函式,統計字母 數字等unicode中不同的字元類別。練習 4.9 編寫乙個程式wordfreq程式,報告輸入文字中每個單詞出現的頻率。在第一次呼叫scan前先呼叫input.split bufio.scanwor...

日常 Go語言聖經 匿名函式習題

go語言聖經 匿名函式 1.擁有函式名的函式只能在包級語法塊中被宣告,通過函式字面量 function literal 我們可繞過這一限制,在任何表示式中表示乙個函式值 2.通過這種方式定義的函式可以訪問完整的詞法環境 lexical environment 這意味著在函式中定義的內部函式可以引用該...

日常 Go語言聖經 競爭條件習題

package main import fmt sync var balance int func deposit amount int func balance int 問題 1.在alice執行期間 balance balance amount 這一步運算可能會被bob中間擠占 2.當執行到ba...