有人可以在下面的 Swift 代碼中解釋“_”的作用。
var guessWasMade: Bool {
if let _ = game.guesses[currentQuestion] {
return true
} else {
return false
}
}
我了解它通常如何用作 for 回圈和函式中的未命名引數。但是找不到 if else 陳述句的任何解釋。
教程將其解釋為guessWasMade 檢查game.guesses 的值。如果找到一個值,我們就知道用戶已經對問題進行了猜測。
game.guesses 是一個整數陣列。
這是類宣告的一部分。完整代碼如下所示
class GameViewModel: ObservableObject {
// MARK: - Published properties
// 2
@Published private var game = Game()
// MARK: - Internal properties
// 3
var currentQuestion: Question {
game.currentQuestion
}
// 4
var questionProgressText: String {
"\(game.currentQuestionIndex 1) / \(game.numberOfQuestions)"
}
// 1
var guessWasMade: Bool {
if let _ = game.guesses[currentQuestion] {
return true
} else {
return false
}
}
// MARK: - Internal Methods
// 2
func makeGuess(atIndex index: Int) {
game.makeGuessForCurrentQuestion(atIndex: index)
}
// 3
func displayNextScreen() {
game.updateGameStatus()
}
}
uj5u.com熱心網友回復:
If let陳述句檢查值是否為零。如果是,那么該陳述是錯誤的。如果不是,則將該值分配給一個變數。
var optionalValue: Int? = 42
if let nonOptionalValue = optionalValue {
print(nonOptionalValue) // -> 42
} else {
print("optionalValue is nil")
}
所以,當你這樣做時if let _ = game.guesses[...],你正在檢查是否game.guesses[...]是nil。如果不是,那么您將忽略帶有通配符模式( _) 的值,它將匹配任何內容。
因為你忽略了價值,所以和說的一樣
if game.guesses[...] != nil {
return true
} else {
return false
}
然后,因為您只是回傳條件的值,所以您可以只回傳條件本身:
var guessWasMade: Bool {
game.guesses[currentQuestion] != nil
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505317.html
