func head<T>(xs: [T]) -> T {
if (xs.count > 0) {
return xs.first!
} else {
NSException(name:"empty list", reason:"empty list", userInfo:nil).raise()
}
}
此代码无法编译(编译器期望每个分支都有一个return语句,并且不会将NSException识别为控制语句。)
如何更改我的代码以使其编译?
P.S。我不想将返回值更改为Optional
答案 0 :(得分:0)
您是否可以将NSException重新格式化为可编译的内容?
尝试这个问题的答案:Calling NSException.raise() in Swift
答案 1 :(得分:0)
我需要fatalError("")
func head<T>(xs: [T]) -> T {
if (xs.count > 0) {
return xs.first!
} else {
fatalError("list is empty")
}
}
此代码工作得很好。