gpt4 book ai didi

Swift 为默认返回值生成错误

转载 作者:搜寻专家 更新时间:2023-10-31 21:51:50 25 4
gpt4 key购买 nike

下面的代码示例很好地说明了我所追求的。我有一个预期返回给定类型的函数。它基于一个不完整 开关来执行此操作。但如果达到 default 情况,我希望只生成一个错误。而不是返回一个有人选择 ! 然后死去的 optional

func someFunc(value:UInt8) -> SomeType {
switch value {
case 0x00:
return SomeType.foo()
case 0x13:
return SomeType.bar()
default:
break // BUT I WANT AN ERROR HERE
}
}

最佳答案

如果你想让程序在默认情况下终止(因为默认大小写会指示编程错误),使用 fatalError():

func someFunc(value:UInt8) -> SomeType {
switch value {
case 0x00:
return SomeType.foo()
case 0x13:
return SomeType.bar()
default:
fatalError("Unexpected value \(value)")
}
}

fatalError() 导致程序立即终止错误信息如

  fatal error: Unexpected value 99: file main.swift, line 13

fatalError() 函数用 @noreturn 标记(分别用Swift 3 中的返回类型 Never),所以编译器不会提示丢失的案例或丢失返回值。

assert()assertionFailure() 等类似函数相比,fatalError() 永远不会被“优化掉”,它会在调试、优化和未经检查的构建中进行评估。

关于Swift 为默认返回值生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34096427/

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