Junior
Z jakimi typami danych można używać odwołań w Swift?
sobes.tech AI
Odpowiedź od AI
W Swift referencje (do adresów) są używane z:
- Klasy (Classes): Instancje klas są typami referencyjnymi. Gdy instancja klasy jest przypisywana do zmiennej lub stałej, kopiowana jest referencja do obiektu, a nie sam obiekt.
- Zamknięcia (Closures): Przechwytywanie zmiennych w zamknięciu odbywa się przez referencję.
- Aktorzy (Actors): Instancje aktorów są również typami referencyjnymi.
- Niektóre typy systemowe: Na przykład
AnyObject,NSObjecti typy z zestawu Core Foundation (np.CFString). - Parametry wejściowe/wyjściowe (
inout): Pozwalają przekazywać zmienne do funkcji przez referencję, aby funkcja mogła zmienić ich wartość.
// Przykład z klasą
class MyClass {
var value = 10
}
let instance1 = MyClass()
let instance2 = instance1 // instance2 odnosi się do tego samego obiektu
instance2.value = 20
print(instance1.value) // Wyświetli 20
// Przykład z inout
func modifyValue(value: inout Int) {
value = value * 2
}
var myInt = 5
modifyValue(value: &myInt)
print(myInt) // Wyświetli 10
Struktury, wyliczenia i krotki są typami wartości, i podczas przypisywania lub przekazywania, ich zawartość jest kopiowana, a nie referencja.