Senior
Môžeme na piatej riadku, kde sa vykonáva fmt.Println(v), získať prístup k jednotke (prvku pridanému pomocou append vnútri fill) a ju vypísať?
sobes.tech AI
Odpoveď od AI
V jazyku Go, ak vo vnútri funkcie fill pridáte prvok do rezu pomocou append, tento prvok bude v reze po volaní fill, ak je rez odovzdaný odkazom alebo vrátený.
Príklad:
package main
import "fmt"
func fill(s []int) []int {
s = append(s, 1) // pridanie prvku
return s
}
func main() {
var v []int
v = fill(v)
fmt.Println(v) // tu sa vypíše [1]
}
Ak je rez odovzdaný do fill hodnotou a nie je vrátený, zmeny sa neuložia. Preto, aby ste mali prístup k pridanému prvku na piatom riadku, musíte buď vrátiť rez z fill, alebo odovzdať ukazovateľ na rez.
Týmto spôsobom môžete na piatom riadku, fmt.Println(v), zobraziť pridanú jednotku, ak správne zorganizujete odovzdanie a vrátenie rezu.