Wie kann ich ein Protokoll der Funktion gesetzt, so dass es ein optionales Argument erhalten oder sogar ignorieren?Swift Standardargument und ignorieren Argument in Protokollmethode/Funktion
Ich habe dieses Protokoll:
protocol Game {
func modeName(forRound: Int) -> ModeName
}
Mit diesen 2 Sonder Klassen:
//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
}
}
Vielen Dank für Ihre Antwort:
In Ihrem
OfflineGame
Fall können Sie den Parameter mit_
als internen Namen ignorieren. Ich habe immer noch ein Problem mit 'OnlineGame', ich kann' game.modeName() 'nicht ohne Parameter aufrufen, wenn ich die Funktion so einstelle, wie Sie in der OnlineGame-Klasse geschrieben haben:' func modeName (_ forRound: Int = 0) -> ModeName' – KalzemSchön. Das hat für mich funktioniert. Bei meinem ersten Versuch vor einiger Zeit habe ich offensichtlich einen Fehler gemacht. Vielen Dank! –
@BabyAzerty Wie deklariert man 'Spiel' Variable? Wenn das "let game: Game = OnlineGame()" ist, kann man '.modeName()' nicht direkt aufrufen, weil der Compiler nicht weiß, dass es sich um eine Instanz der 'OnlineGame' Klasse handelt. – rintaro