Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:go_useful [2019/09/02 16:29] alfred [go mod for managing dependences] |
wiki2:go_useful [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 170: | Línea 170: | ||
| </code> | </code> | ||
| + | |||
| + | ===== Maps ===== | ||
| + | |||
| + | <code> | ||
| + | var m map[string]Vertex | ||
| + | m = make(map[string]Vertex) | ||
| + | m["Bell Labs"] = Vertex{40.68433, -74.39967} | ||
| + | </code> | ||
| + | <code> | ||
| + | keys := make([]keyType, 0, len(myMap)) | ||
| + | values := make([]valueType, 0, len(myMap)) | ||
| + | for k, v := range myMap { | ||
| + | keys = append(keys, k) | ||
| + | values = append(values, v) | ||
| + | } | ||
| + | </code> | ||
| ===== Go Routines ===== | ===== Go Routines ===== | ||
| Previous code used: | Previous code used: | ||
| Línea 250: | Línea 266: | ||
| // Join path | // Join path | ||
| path.Join(arguments[0], selectedProject) | path.Join(arguments[0], selectedProject) | ||
| + | </code> | ||
| + | ====== Snippets ====== | ||
| + | ===== Map, reduce, filter in Go ===== | ||
| + | <code> | ||
| + | func mapXtoY(collection []X, fn func(elem X) Y) []Y { | ||
| + | var result []Y | ||
| + | for _, item := range collection { | ||
| + | result = append(result, fn(item)) | ||
| + | } | ||
| + | return result | ||
| + | } | ||
| + | |||
| + | func reduceXtoY(collection []X, init Y, fn func(memo Y, elem X) Y) Y { | ||
| + | result := init | ||
| + | for _, item := range collection { | ||
| + | result = fn(result, item) | ||
| + | } | ||
| + | return result | ||
| + | } | ||
| + | |||
| + | func filterXs(collection []X, fn func(elem X) bool) []X { | ||
| + | var result []X | ||
| + | for _, item := range collection { | ||
| + | if fn(item) { | ||
| + | result = append(result, item) | ||
| + | } | ||
| + | } | ||
| + | return result | ||
| + | } | ||
| </code> | </code> | ||
| + | |||
| + | ===== Nested functions ===== | ||
| + | <code> | ||
| + | func f() { | ||
| + | foo := func(s string) { | ||
| + | fmt.Println(s) | ||
| + | } | ||
| + | |||
| + | foo("Hello World!") | ||
| + | } | ||
| + | </code> | ||
| + | |||