Junior
Milliste andmetüüpidega saab Swiftis kasutada viiteid?
sobes.tech AI
Vastus AI-lt
Swiftis kasutatakse viiteid (aadressidele) järgmistel juhtudel:
- Klassid (Classes): Klasside näidised on viidetüübid. Kui klassi näidis määratakse muutujale või konstantsile, kopeeritakse viide objekti, mitte ise objekt.
- Lõputud (Closures): Muutujate haaramine lõpututes toimub viite alusel.
- Näitlejad (Actors): Näitlejate näidised on samuti viidetüübid.
- Mõned süsteemitüübid: Näiteks
AnyObject,NSObjectja Core Foundation komplekti tüübid (näiteksCFString). - Sisend-/väljundparameetrid (
inout): Annab võimaluse edastada muutujad funktsioonile viitega, et funktsioon saaks nende väärtust muuta.
// Näide klassiga
class MyClass {
var value = 10
}
let instance1 = MyClass()
let instance2 = instance1 // instance2 viitab samale objektile
instance2.value = 20
print(instance1.value) // Kuvab 20
// Näide inout-iga
func modifyValue(value: inout Int) {
value = value * 2
}
var myInt = 5
modifyValue(value: &myInt)
print(myInt) // Kuvab 10
Struktuurid, enumeratsioonid ja tulpid on väärtusetüübid, ning nende sisu kopeeritakse määramisel või edastamisel, mitte viide.