Junior
Mis on väärtusetüübid?
sobes.tech AI
Vastus AI-lt
Swiftis on väärtustüübid, mille eksemplarid kopeeritakse omistamisel või funktsioonile edastamisel. Iga sõltumatu koopia omab oma salvestusruumi.
Näited:
- Structs
- Enums
- Tuples
- Integer, Float, Double, Bool, String, Array, Dictionary, Set
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2)
var p2 = p1 // Väärtuse koopia
p2.x = 10 // Muudame koopiat, p1 ei muutu
print(p1.x) // Väljund: 1
print(p2.x) // Väljund: 10
Eelised:
- Ennustatav käitumine, kuna muudatused ühes koodiosas ei mõjuta teisi koopiaid.
- Vaikimisi turvalisus kohalike väärtuste töötlemisel.
Miinused:
- Kopeerimine võib olla kulukas suurte struktuuride puhul.
Võrreldes viidetüüpidega:
| Omadus | Väärtustüüp | Viidetüüp |
|---|---|---|
| Määramine | Väärtuse kopeerimine | Viite kopeerimine |
| Muutmine | Muudab koopiat | Muudab algset objekti |
| Näide | struct, enum, tuple, põhitüübid | class, closure |