In Go sind anonyme Funktionen und Abschlüsse leistungsstarke Werkzeuge für die Arbeit mit Funktionen, und das Befolgen von Best Practices kann die Qualität Ihres Codes verbessern. Anonyme Funktionen sollten einfach gehalten werden, die Erfassung externer Variablen vermeiden und variable Parameter verwenden. Abschlüsse sollten die Erfassung freier Variablen einschränken und die Änderung freier Variablen vermeiden. Wenn eine große Anzahl freier Variablen erfasst wird, können benannte Funktionen zur Verbesserung der Lesbarkeit verwendet werden.
In Golang sind anonyme Funktionen und Abschlüsse leistungsstarke Werkzeuge bei der Arbeit mit Funktionen. Das Befolgen von Best Practices kann die Lesbarkeit, Wartbarkeit und Leistung des Codes verbessern.
Anonyme Funktionen sind Funktionen ohne Namen, die normalerweise als Rückrufe oder einmalige Vorgänge verwendet werden.
Verwenden Sie Best Practices:
...
bietet Flexibilität. ...
捕获所有剩余参数可以提供灵活性。实战案例:
下面的匿名函数将文件行数计数传递给 ioutil.ReadDir
函数:
import ( "fmt" "io/ioutil" ) func main() { numLines := func(path string) int { bytes, err := ioutil.ReadFile(path) if err != nil { return 0 } return len(bytes) } entries, _ := ioutil.ReadDir(".") for _, entry := range entries { fmt.Println(numLines(entry.Name())) } }
闭包是一种包含自由变量(在函数外部声明但可以在函数内部访问的变量)的函数。
遵循最佳实践:
实战案例:
下面的闭包使用 count
ioutil.ReadDir
: 🎜func createCounter() func() int { count := 0 return func() int { count++ return count } } func main() { counter := createCounter() fmt.Println(counter()) // 1 fmt.Println(counter()) // 2 fmt.Println(counter()) // 3 }
count
, um die Anzahl der Funktionsaufrufe zu verfolgen: 🎜rrreeeDas obige ist der detaillierte Inhalt vonBest-Practice-Untersuchung anonymer Golang-Funktionen und -Abschlüsse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!