ran*_*nny -3 return switch-statement swift
你好,我有一个简单的 switch case 语句,它有一个错误“在预期返回‘字符串’的函数中缺少返回”
我只能看到我正在归还所有东西。没有 if 语句,所以它不能是一个缺失的返回。
enum Sign { case rock, paper, scissors }
func detectWinner(player: Sign, bot: Sign) -> String{
switch player{
case .rock:
switch(bot){
case .rock: return "You Tied"
case .paper: return "You Lost"
case .scissors: return "You Won"
}
case .paper:
switch(bot){
case .rock: return "You Won"
case .paper: return "You Tied"
case .scissors: return "You Lost"
}
case .scissors:
switch(bot){
case .rock: return "You Lost"
case .paper: return "You Won"
case .scissors: return "You Tied"
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,您的代码应该编译,因为您详尽地处理了所有 switch 语句。尝试清洁和重建。
顺便说一句,这似乎很好地使用了带有元组的 switch 语句:
enum Sign { case rock, paper, scissors }
func detectWinner(player: Sign, bot: Sign) -> String{
switch (player, bot){
case (.rock, .rock): return "You Tied"
case (.rock, .paper): return "You Lost"
case (.rock, .scissors): return "You Won"
case (.paper, .rock): return "You Won"
case (.paper, .paper): return "You Tied"
case (.paper, .scissors): return "You Lost"
case (.scissors, .rock): return "You Lost"
case (.scissors, .paper): return "You Won"
case (.scissors, .scissors): return "You Tied"
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎比嵌套的 switch 语句更易于阅读和维护。(它是为我打造的,至少在游乐场)