Sobes.tech
Junior

Hol tárolódnak az adatok típusaira vonatkozó információk Swiftben?

sobes.tech MI

Válasz az MI-től

A Swiftben az adattípusokra vonatkozó információkat a típus metaadatai (type metadata) tárolják.

A típus metaadatai a következő információkat tartalmazzák:

  • A típus mérete.
  • A típus memória szerinti igazítása.
  • Stride (távolság az elemek között egy tömbben).
  • A típus tulajdonságai (pl. osztályok és struktúrák esetén).
  • A típus metódusai.
  • A protokollok, amelyeket a típus megvalósít.
  • Osztályok esetén: szuperosztály, virtuális tábla (vtable) információk.

A metaadatokhoz való hozzáférés a type(of:) vagy .self segítségével történik egy adott példány vagy típus esetén.

// Egy példány típusának lekérése
let name = "Swift"
let typeOfName = type(of: name) // String.Type

// Egy osztály típusának lekérése
let myClassType = MyClass.self // MyClass.Type

// Metaadatok használatának példái
struct MyStruct {
    var value: Int
}

let metadata = type(of: MyStruct.self)
// print(MemoryLayout<MyStruct>.size) // A típus mérete, gyakran egyezik a metaadatokban lévő információkkal