Junior
რა ნიშნავს ასლის გადაცემას?
sobes.tech AI
პასუხი AI-სგან
როდესაც გადაეცემა კოპიით (pass by value) ფუნქციას, გადაეცემა ცვლადის მნიშვნელობის ასლი, არა — ბმული ორიგინალზე. ფუნქციის შიგნით განხორციელებული ცვლილებები არ ახდენს გავლენას გარეთ არსებულ ცვლადზე.
Swift-ში სტრუქტურებისა და ენუმაციებისთვის გამოიყენება ნაგულისხმევი კოპიით გადაცემა. კლასებისთვის — გადაცემა ბმულით (pass by reference), მაგრამ ამ შემთხვევაში გადაეცემა ბმულის ასლი, არა — ობიექტი.
მაგალითი Swift-ში:
// Customer სტრუქტურა
struct Customer {
var name: String
}
// ფუნქცია, რომელიც იცვლის Customer ტიპის პარამეტრს
func changeCustomerName(customer: Customer) {
var modifiedCustomer = customer // სტრუქტურის ასლი იქმნება
modifiedCustomer.name = "Jane"
print("ფუნქციის შიგნით: \(modifiedCustomer.name)") // გამოტანა: ფუნქციის შიგნით: Jane
}
var myCustomer = Customer(name: "John")
print("პირველად ფუნქციამდე: \(myCustomer.name)") // გამოტანა: პირველად ფუნქციამდე: John
changeCustomerName(customer: myCustomer)
print("ფუნქციის შემდეგ: \(myCustomer.name)") // გამოტანა: ფუნქციის შემდეგ: John - ორიგინალი მნიშვნელობა არ შეიცვალა
ძირითადი წერტილი: ფუნქცია მუშაობს მონაცემების ადგილობრივ ასლთან.