Come è possibile impostare la funzione di un protocollo in modo che possa ricevere un argomento facoltativo o addirittura ignorarlo?Argomento predefinito rapido e argomento ignora nel metodo/funzione protocollo
ho questo protocollo:
protocol Game {
func modeName(forRound: Int) -> ModeName
}
Con questi 2 speciali classi:
//Goal: Default forRound should be 0 if none provided
class OnlineGame : Game {
func modeName(forRound: Int = 0) -> ModeName {
//Some code
}
}
//Goal: I don't care about the forRound value here
class OfflineGame : Game {
func modeName(_ forRound: Int) -> ModeName {
//Some code
}
}
Grazie per la risposta. Ho ancora un problema con 'OnlineGame', non posso chiamare' game.modeName() 'senza un parametro se imposto la funzione come hai scritto nella classe OnlineGame:' func modeName (_ forRound: Int = 0) -> ModeName' – Kalzem
Nice. Questo ha funzionato per me. Al mio primo tentativo, qualche tempo fa, ovviamente ho fatto qualche errore. Grazie! –
@BabyAzerty Come si dichiara la variabile 'game'? Se questo è 'let game: Game = OnlineGame()', non puoi chiamare direttamente '.modeName()', perché il compilatore non sa che è un'istanza della classe 'OnlineGame'. – rintaro