Junior — Middle
Kas saaksite selgitada, mis on tüübid, mida programmeerimiskeeltes edastatakse viitega?
sobes.tech AI
Vastus AI-lt
Keeltes programmeerimiskeeltes tähendavad, et viitena kaudu edastatüübid tähendab, et kui muutuja edastatakse funktsioonile või meetodile, ei edastata väärtuse koopiat, vaid viide (näitaja) algandmetele. Funktsiooni sees tehtavad muudatused mõjutavad algobjekti.
Go keeles edastatakse primitiivtüübid (int, float, bool) väärtuse kaudu, samas kui keerukamad tüübid, nagu slices, maps, pointers, channels ja interfaces, edastatakse viitega.
Näide slices'i edastamisest viitega:
func modifySlice(s []int) {
s[0] = 100
}
func main() {
nums := []int{1, 2, 3}
modifySlice(nums)
fmt.Println(nums) // Kuvab: [100 2 3]
}
Siin saab funktsioon viite slices'ile, seega peegeldavad muudatused funktsiooni sees algsesse slices'isse. See võimaldab tõhusalt töötada suurte andmestruktuuridega ilma koopiat tegemata.