gpt4 book ai didi

Swift 开关默认 + fallthrough : missing return in a function expected to return 'String'

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:25 24 4
gpt4 key购买 nike

我有以下代码:

func messageForError(error: ApiErrorType)->String{
switch (error){
case .ApiError(let apiMessage):
if let newMessage = apiMessage{
return newMessage
}
case .NoInternetError:
return "Não foi possível estabelecer conexão com o servidor. Você está conectado à internet?"

case .RequestError:
fallthrough
default:
return "Não se preocupe, já demitimos o estágiario. \nDeseja tentar novamente?"
}
}

但是编译器打印出如下错误:

在预期返回“String”的函数中缺少返回值

开关有一个默认值,所以所有的情况都会被处理,我遗漏了什么或者 Swift 编译器不是那么聪明?

如果我删除了 fallthrough,编译器会编译而不会出现任何错误:

    func messageForError(error: ApiErrorType)->String{
switch (error){
case .ApiError(let apiMessage):
if let newMessage = apiMessage{
return newMessage
}
case .NoInternetError:
return "Não foi possível estabelecer conexão com o servidor. Você está conectado à internet?"
default:
return "Não se preocupe, já demitimos o estágiario. \nDeseja tentar novamente?"
}
}

最佳答案

目前尚不清楚您是否已经弄清楚了这一点。问题不在于您没有在 switch 语句中涵盖所有基础。并不是所有的代码路径都会返回一个值。在 ApiError 的情况下,如果测试失败,则不会执行返回。如果您在此测试后放置一个return,代码将编译。

关于Swift 开关默认 + fallthrough : missing return in a function expected to return 'String' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com