Kurzusok
/
Swift
Swift
/
Tanterv
/
Inout paraméterek
In

Inout paraméterek ebben a kurzusban: Swift

1 feladat

A(z) Inout paraméterek fogalomról

Egy függvény törzsén belül a paramétereket állandóként, nem változóként kezeljük; ha megpróbálod módosítani egy paraméter értékét, az fordítási idejű hibát vált ki. Ha egy függvény módosítani szeretné egy paraméter értékét, in-out paramétert kell használnia, hogy ezt a módosíthatóságot egyértelművé tegye.

Ahhoz, hogy in-out paramétereket használhass, három dologra kell figyelned:

  1. A függvénydefinícióban az in-out paramétereket egyértelműen meg kell jelölni úgy, hogy az inout kulcsszót a : és a típusnév közé írod a paraméter típusannotációjában.
  2. Az in-out paraméternek átadott értéket változóként kell deklarálni, nem állandóként. Ugyanígy nem lehet literál.
  3. A függvényhívásban a változó neve elé egy & jelet kell tenni, ezzel egyértelműen jelölve, hogy módosítható.

Amikor ez megtörténik, a függvény belső másolatot készít az in-out paraméterről, a függvény törzsében leírtak szerint módosítja, majd amikor a függvény visszatér, a módosított értéket visszamásolja abba a változóba, amelyet átadtak.

func updateVersion(_ record: inout (version: Int, title: String)) {
  record.version += 1
}

var dbRecord = (version: 2, title: "Exercism")
updateVersion(&dbRecord)

// dbRecord is now (3, "Exercism")
Van néhány további szabály, amit érdemes szem előtt tartanod az in-out paraméterekkel kapcsolatban.

1.  Egy in-out paramétereket használó függvényen belül nem hivatkozhatsz arra a változóra, amelyet in-out paraméterként adtál át.
2.  Ugyanaz a változó nem adható át több in-out paraméterként ugyanabban a függvényben.
    Például az `inoutFunc(&mutVar, &mutVar)` hívás fordítási idejű hibát vált ki.
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Inout paraméterek fogalmat