Sobes.tech
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 - ორიგინალი მნიშვნელობა არ შეიცვალა

ძირითადი წერტილი: ფუნქცია მუშაობს მონაცემების ადგილობრივ ასლთან.