Usare le computed properties in Swift

Mattepuffo's logo
Usare le computed properties in Swift

Usare le computed properties in Swift

In Swift le computed properties sono proprietà di una struct/class che sostanzialmente sono "calcolate" e quindi non hanno un "singolo" valore.

Più facile fare un esempio che spiegarlo.

Cominciamo da questo:

struct CreaFile {
    var path: String
    var nomeFile: String
    var file: String {
        return path + "/" + nomeFile
    }
}

var cf = CreaFile(path: "/home", nomeFile: "test.txt")
print(cf.file)

Come vedete file è "calcolata" in base ad altre variabili.

In questo è readonly, quindi l'esempio qui sotto darà errore:

struct CreaFile {
    var path: String
    var nomeFile: String
    var file: String {
        return path + "/" + nomeFile
    }
}

var cf = CreaFile(path: "/home", nomeFile: "test.txt")
print(cf.file)
cf.file = "fff"

Volendo possiamo usare get e set per impostare lettura e scrittura:

struct CreaFile {
    var path: String
    var nomeFile: String
    var file: String {
        get {
            return path + "/" + nomeFile
        }
        
        set(newValue) {
            nomeFile = newValue
        }
    }
}

var cf = CreaFile(path: "/home", nomeFile: "test.txt")
print(cf.file)
cf.file = "fff.txt"
print(cf.file)

Quello che dovete tenere a mente del set, è che viene usato per cambiare una proprietà che calcola la computed property, non la proprietà in se.

Infine vediamo un esempio usando una classe:

class CreaFile {
    var path: String
    var nomeFile: String
    var file: String {
        get {
            return path + "/" + nomeFile
        }
        
        set(newValue) {
            nomeFile = newValue
        }
    }
    
    init() {
        path = ""
        nomeFile = ""
    }
}

var cf = CreaFile()
cf.path = "/home"
cf.nomeFile = "test.txt"
print(cf.file)
cf.file = "fff.txt"
print(cf.file)

Sostanzialmente è la stessa cosa.

Enjoy!


Condividi

Commentami!