Согласно документации на swift.org, ниже приведен оригинальный исходный код:
https://docs.swift.org/swift-book/LanguageGuide/Protocols.html
class DiceGameTracker: DiceGameDelegate {
var numberOfTurns = 0
func gameDidStart(_ game: DiceGame) {
numberOfTurns = 0
if game is SnakesAndLadders {
print("Started a new game of Snakes and Ladders")
}
print("The game is using a \(game.dice.sides)-sided dice")
}
func game(_ game: DiceGame, didStartNewTurnWithDiceRoll diceRoll: Int) {
numberOfTurns += 1
print("Rolled a \(diceRoll)")
}
func gameDidEnd(_ game: DiceGame) {
print("The game lasted for \(numberOfTurns) turns")
}
}
Я понимаю, что func gameDidStart использует игровой параметр типа DiceGame для доступа.dice.sides, а также для проверки ссылочного объекта.
Но func gameDidEnd(_ game: DiceGame)
и func game(_ game: DiceGame, didStartNewTurnWithDiceRoll diceRoll: Int)
эти две функции не используют игровой параметр, почему они все равно должны его объявить?Это стиль кодирования Apple?Я действительно не понимаю эту часть ....